MediaElement - элемент проигрывателя

class MediaElement

Наследник Element

autoplay

Ес­ли име­ет зна­че­ние true, про­иг­ры­ва­тель ав­то­ма­ти­че­ски нач­нет про­иг­ры­ва­ние, ко­гда бу­дет за­гру­жен дос­та­точ­ный объ­ем дан­ных. Со­от­вет­ст­ву­ет HTML-ат­ри­бу­ту autoplay.

buffered

Фраг­мен­ты уже за­гру­жен­ных в бу­фер дан­ных TimeRanges.

controls

Ес­ли име­ет зна­че­ние true, про­иг­ры­ва­тель дол­жен ото­бра­зить эле­мен­ты управ­ле­ния про­иг­ры­ва­ни­ем. Со­от­вет­ст­ву­ет HTML-ат­ри­бу­ту controls.

currentSrc

URL-ад­рес муль­ти­ме­дий­ных дан­ных, по­лу­чен­ный из ат­ри­бу­та src или из од­но­гоиз до­чер­них эле­мен­тов <source>, или пус­тая стро­ка, ес­ли дан­ные для про­иг­ры­ва­ния не ука­за­ны.

currentTime

Те­ку­щая по­зи­ция про­иг­ры­ва­ния в се­кун­дах. Ус­та­нов­ка это­го свой­ст­ва по­зво­ля­ет пе­рей­ти к дру­гой по­зи­ции про­иг­ры­ва­ния.

defaultPlaybackRate

Ско­рость про­иг­ры­ва­ния, ис­поль­зуе­мая при про­иг­ры­ва­нии в нор­маль­ном ре­жи­ме. Зна­че­ние по умол­ча­нию 1.0.

duration

Про­дол­жи­тель­ность за­пи­си в се­кун­дах. Ес­ли про­дол­жи­тель­ность не­из­вест­на (на­при­мер, ко­гда ме­та­дан­ные еще не бы­ли за­гру­же­ны), это свой­ст­во име­ет зна­че­ние NaN. Ес­ли про­иг­ры­ва­ют­ся по­то­ко­вые дан­ные с не­оп­ре­де­лен­ной про­дол­жи­тель­но­стью, это свой­ст­во име­ет зна­че­ние Infinity.

ended

Име­ет зна­че­ние true, ес­ли дос­тиг­нут ко­нец за­пи­си.

error

Это свой­ст­во ус­та­нав­ли­ва­ет­ся, ко­гда воз­ни­ка­ет ошиб­ка, в про­тив­ном слу­чае име­ет зна­че­ние null. Ссы­ла­ет­ся на объ­ект MediaError, свой­ст­во code ко­то­ро­го опи­сы­ва­ет тип ошиб­ки.

initialTime

На­чаль­ная по­зи­ция про­иг­ры­ва­ния в се­кун­дах. Обыч­но име­ет зна­че­ние 0, но в не­ ко­то­рых слу­ча­ях (на­при­мер, ко­гда про­иг­ры­ва­ют­ся по­то­ко­вые дан­ные) мо­жет иметь раз­лич­ные зна­че­ния.

loop

Ес­ли име­ет зна­че­ние true, про­иг­ры­ва­тель дол­жен ав­то­ма­ти­че­ски пе­ре­за­пус­кать вос­про­из­ве­де­ние за­пи­си по дос­ти­же­нии кон­ца. Это свой­ст­во со­от­вет­ст­ву­ет HTML-ат­ри­бу­ту loop.

muted

Оп­ре­де­ля­ет, долж­на ли вос­про­из­во­дить­ся за­пись без зву­ка. Это свой­ст­во мож­но ис­поль­зо­вать, что­бы от­клю­чать и вклю­чать звук. Для эле­мен­тов <video> мож­но ис­поль­зо­вать ат­ри­бут audio=”muted”, что­бы от­клю­чить звук по умол­ча­нию.

networkState

Оп­ре­де­ля­ет, за­гру­жа­ют­ся дан­ные в на­стоя­щий мо­мент или нет. До­пус­ти­мые зна­че­ния пе­ре­чис­ле­ны в раз­де­ле «Кон­стан­ты» вы­ше.

  • NETWORK_EMPTY = 0, Эле­мент еще не при­сту­пил к ис­поль­зо­ва­нию се­ти. Это со­стоя­ние пред­ше­ст­ву­ет ус­та­нов­ке ат­ри­бу­та src.
  • NETWORK_IDLE = 1, В на­стоя­щий мо­мент эле­мент не про­из­во­дит за­груз­ку дан­ных из се­ти. Воз­мож­но, он уже за­гру­зил ре­сурс пол­но­стью или за­гру­зил не­об­хо­ди­мый объ­ем дан­ных в бу­фер. Или, воз­мож­но, свой­ст­во preload ус­та­нов­ле­но в зна­че­ние «none», и по­ка не бы­ла за­про­ше­на за­груз­ка или про­иг­ры­ва­ние дан­ных.
  • NETWORK_LOADING = 2, В на­стоя­щее вре­мя эле­мент за­гру­жа­ет дан­ные из се­ти.
  • NETWORK_NO_SOURCE = 3, Эле­мент не ис­поль­зу­ет сеть, по­то­му что не спо­со­бен оты­скать ис­точ­ник с дан­ны­ми для про­иг­ры­ва­ния.
onabort

Эле­мент пре­кра­тил за­груз­ку дан­ных, ве­ро­ят­но, по за­про­су поль­зо­ва­те­ля. Свой­ст­во error.code име­ет зна­че­ние error.MEDIA_ERR_ABORTED.

oncanplay

За­гру­же­но дос­та­точ­но дан­ных, что­бы на­чать про­иг­ры­ва­ние, но на­вер­ня­ка по­тре­бу­ет­ся за­груз­ка до­пол­ни­тель­ных дан­ных.

oncanplaythrough

За­гру­же­но дос­та­точ­но дан­ных, что­бы про­иг­ры­ва­ние не при­ос­та­нав­ли­ва­лось на за­груз­ку до­пол­ни­тель­ных дан­ных.

ondurationchange

Из­ме­ни­лось зна­че­ние свой­ст­ва duration.

onemptied

Свой­ст­во networkState по­л у­чи­ло зна­че­ние NETWORK_EMPTY вслед­ст­вие ошиб­ки или ос­та­нов­ки про­иг­ры­ва­те­ля.

onended

Про­иг­ры­ва­ние ос­та­нов­ле­но по дос­ти­же­нии кон­ца за­пи­си.

onerror

Се­те­вая или ка­кая-то дру­гая ошиб­ка пре­пят­ст­ву­ет за­груз­ке дан­ных. Свой­ст­во error.code име­ет зна­че­ние, от­лич­ное от MEDIA_ERR_ABORTED (Media­Error).

onloadeddata

Дан­ные для те­ку­щей по­зи­ции про­иг­ры­ва­ния за­гру­же­ны в пер­вый раз.

onloadedmetadata

Бы­ли за­гру­же­ны ме­та­дан­ные, и ста­ли дос­туп­ны про­дол­жи­тель­ность и раз­ме­ры кад­ра.

onloadstart

Эле­мент по­слал за­прос на за­груз­ку дан­ных.

onpause

Был вы­зван ме­тод pause(), и про­иг­ры­ва­ние бы­ло при­ос­та­нов­ле­но.

onplay

Был вы­зван ме­тод play(), или ат­ри­бут autoplay вы­звал за­пуск про­иг­ры­ва­ния.

onplaying

Дан­ные про­иг­ры­ва­ют­ся.

onprogress

За­груз­ка дан­ных из се­ти про­дол­жа­ет­ся. Обыч­но ге­не­ри­ру­ет­ся от 2 до 8 раз в се­кун­ду. Об­ра­ти­те вни­ма­ние, что объ­ект, свя­зан­ный с этим со­бы­ти­ем, яв­ля­ет­ся обыч­ным объ­ек­том Event, а не Progress­Event, ис­поль­зуе­мым дру­ги­ми при­клад­ны­ми ин­тер­фей­са­ми, ко­то­рые воз­бу­ж­да­ют со­бы­тия с име­нем «progress».

onratechange

Из­ме­ни­лось зна­че­ние свой­ст­ва playbackRate или defaultPlaybackRate.

onseeked

Свой­ст­во seeking опять по­лу­чи­ло зна­че­ние false.

onseeking

Сце­на­рий или поль­зо­ва­тель по­тре­бо­вал вы­пол­нить пе­ре­ход к по­зи­ции про­иг­ры­ва­ния, для ко­то­рой дан­ные еще не бы­ли за­гру­же­ны, вслед­ст­вие че­го про­иг­ры­ва­ние бы­ло при­ос­та­нов­ле­но до за­груз­ки дан­ных. Свой­ст­во seeking име­ет зна­че­ние true.

onstalled

Эле­мент пы­та­ет­ся за­гру­зить дан­ные, но дан­ные не по­сту­па­ют.

onsuspend

Эле­мент за­гру­зил в бу­фер дос­та­точ­но боль­шой объ­ем дан­ных и вре­мен­но при­ос­та­но­вил за­груз­ку.

ontimeupdate

Из­ме­ни­лось зна­че­ние свой­ст­ва currentTime. При обыч­ном про­иг­ры­ва­нии это со­бы­тие воз­бу­ж­да­ет­ся от 4 до 60 раз в се­кун­ду.

onvolumechange

Из­ме­ни­лось зна­че­ние свой­ст­ва volume или muted.

onwaiting

Про­иг­ры­ва­ние не мо­жет быть на­ча­то, или про­иг­ры­ва­ние бы­ло при­ос­та­нов­ле­но из-за не­дос­та­точ­но­го объ­е­ма бу­фе­ри­зо­ван­ных дан­ных. Ко­гда бу­дет за­гру­жен дос­та­точ­ный объ­ем дан­ных, по­сле­ду­ет со­бы­тие «playing».

paused

Име­ет зна­че­ние true, ес­ли в на­стоя­щий мо­мент про­иг­ры­ва­ние при­ос­та­нов­ле­но.

playbackRate

Те­ку­щая ско­рость про­иг­ры­ва­ния. 1.0 – нор­маль­ная ско­рость про­иг­ры­ва­ния. Зна­че­ния боль­ше 1.0 со­от­вет­ст­ву­ют ус­ко­рен­ной ско­ро­сти про­иг­ры­ва­ния впе­ред. Зна­че­ния от 0 до 1.0 со­от­вет­ст­ву­ют за­мед­лен­ной ско­ро­сти про­иг­ры­ва­ния впе­ред. Зна­че­ния мень­ше 0 со­от­вет­ст­ву­ют про­иг­ры­ва­нию в об­рат­ном на­прав­ле­нии. (Звук все­гда от­клю­ча­ет­ся при про­иг­ры­ва­нии в об­рат­ном на­прав­ле­нии, а так­же при слиш­ком бы­ст­ром или слиш­ком мед­лен­ном про­иг­ры­ва­нии впе­ред.)

played

Фраг­мен­ты TimeRanges, ко­то­рые уже бы­ли про­иг­ра­ны.

preload

Это свой­ст­во со­от­вет­ст­ву­ет HTML-ат­ри­бу­ту с тем же име­нем, и его мож­но ис­поль­зо­вать, что­бы ука­зать, ка­кой объ­ем дан­ных дол­жен за­гру­зить бро­узер, пре­ж­де чем поль­зо­ва­тель смо­жет за­пус­тить про­иг­ры­ва­ние. Зна­че­ние «none» оз­на­ча­ет, что пред­ва­ри­тель­ная за­груз­ка дан­ных не долж­на вы­пол­нять­ся. Зна­че­ние «metadata» оз­на­ча­ет, что бро­узер дол­жен пред­ва­ри­тель­но за­гру­зить ме­та­дан­ные (та­кие как про­дол­жи­тель­ность), но не фак­ти­че­ские дан­ные. Зна­че­ние «auto» (или про­сто пус­тая стро­ка, ес­ли ат­ри­бут preload ука­зан без зна­че­ния) оз­на­ча­ет, что бро­узер мо­жет за­гру­зить весь ре­сурс це­ли­ком на тот слу­чай, ес­ли поль­зо­ва­тель ре­шит про­иг­рать его.

readyState

Оп­ре­де­ля­ет го­тов­ность дан­ных к про­иг­ры­ва­нию, ис­хо­дя из объ­е­ма дан­ных, за­гру­жен­ных в бу­фер.

  • HAVE_NOTHING = 0, Муль­ти­ме­дий­ные дан­ные или ме­та­дан­ные еще не бы­ли за­гру­же­ны.
  • HAVE_METADATA = 1, Ме­та­дан­ные бы­ли за­гру­же­ны, но дан­ные для те­ку­щей по­зи­ции про­иг­ры­ва­ния еще не бы­ли за­гру­же­ны. Это оз­на­ча­ет, что мож­но уз­нать про­дол­жи­тель­ность или раз­ме­ры кад­ра ви­део­за­пи­си, а так­же пе­рей­ти к дру­гой по­зи­ции про­иг­ры­ва­ния, из­ме­нив зна­че­ние свой­ст­ва currentTime, но бро­узер в на­стоя­щее вре­мя не про­иг­ры­ ва­ет дан­ные в по­зи­ции currentTime.
  • HAVE_CURRENT_DATA = 2, Дан­ные для те­ку­щей по­зи­ции про­иг­ры­ва­ния currentTime бы­ли за­гру­же­ны, но дан­ных по­ка не­дос­та­точ­но, что­бы мож­но бы­ло на­чать про­иг­ры­ва­ние. Для ви­део­за­пи­сей это обыч­но оз­на­ча­ет, что те­ку­щий кадр уже за­гру­жен, а сле­дую­щий – еще нет. Это со­стоя­ние воз­ни­ка­ет в кон­це ау­дио- или ви­део­за­пи­си.
  • HAVE_FUTURE_DATA = 3, За­гру­жен объ­ем дан­ных, дос­та­точ­ный, что­бы на­чать про­иг­ры­ва­ние, но, ско­рее все­го, не­дос­та­точ­ный, что­бы про­иг­рать за­пись до кон­ца без при­ос­та­нов­ки для за­груз­ки до­пол­ни­тель­ных дан­ных.
  • HAVE_ENOUGH_DATA = 4, За­гру­жен объ­ем дан­ных, дос­та­точ­ный, что­бы бро­узер смог про­иг­рать за­пись до кон­ца без при­ос­та­нов­ки.
seekable

Фраг­мент или фраг­мен­ты TimeRanges, зна­че­ния вре­ме­ни для ко­то­рых мо­гут быть при­свое­ны свой­ст­ву currentTime. При про­иг­ры­ва­нии про­стых фай­лов обыч­но мож­но ус­та­но­вить лю­бое зна­че­ние от 0 до зна­че­ния свой­ст­ва duration. Но для по­то­ко­вых дан­ных по­зи­ция в про­шлом мо­жет от­сут­ст­во­вать в бу­фе­ре, а по­зи­ция в бу­ду­щем мо­жет быть еще не­дос­туп­на.

seeking

Име­ет зна­че­ние true, по­ка эле­мент про­иг­ры­ва­те­ля вы­пол­ня­ет пе­ре­ход к но­вой по­зи­ции про­иг­ры­ва­ния currentTime. Ес­ли дан­ные для но­вой по­зи­ции про­иг­ры­ва­ния уже за­гру­же­ны в бу­фер, это свой­ст­во бу­дет иметь зна­че­ние true очень ко­рот­кий про­ме­жу­ток вре­ме­ни. Но ес­ли для пе­ре­хо­да про­иг­ры­ва­те­лю не­об­хо­ди­мо за­гру­зить но­вые дан­ные, свой­ст­во seeking бу­дет ос­та­вать­ся в зна­че­нии true до­воль­но про­дол­жи­тель­ное вре­мя.

src

Со­от­вет­ст­ву­ет HTML-ат­ри­бу­ту src эле­мен­та про­иг­ры­ва­те­ля. При­сваи­ва­ние но­во­го зна­че­ния это­му свой­ст­ву за­ста­вит про­иг­ры­ва­тель за­гру­зить но­вые дан­ные для про­иг­ры­ва­ния. Не пу­тай­те это свой­ст­во со свой­ст­вом currentSrc.

startOffsetTime

Дей­ст­ви­тель­ные да­та и вре­мя по­зи­ции про­иг­ры­ва­ния 0, ес­ли ме­та­дан­ные со­дер­жат та­кую ин­фор­ма­цию. (Ви­део­файл мо­жет со­дер­жать вре­мя съем­ки, на­при­мер.)

volume

Оп­ре­де­ля­ет уро­вень гром­ко­сти вос­про­из­во­ди­мой ау­дио­за­пи­си. Зна­че­ние долж­но быть в диа­па­зо­не от 0 до 1. См. так­же опи­са­ние свой­ст­ва muted.

canPlayType(string type)

Этот ме­тод за­пра­ши­ва­ет у эле­мен­та про­иг­ры­ва­те­ля, спо­со­бен ли он про­иг­ры­ватьдан­ные MIME-ти­па type. Ес­ли про­иг­ры­ва­тель точ­но оп­ре­де­лит, что не мо­жет про­иг­ры­вать дан­ные ука­зан­но­го ти­па, он вер­нет пус­тую стро­ку. Ес­ли про­иг­ры­ва­тель по­ла­га­ет (но не уве­рен), что мо­жет про­иг­ры­вать дан­ные ука­зан­но­го ти­па, он вер­нет стро­ку «probably» («воз­мож­но»). В об­щем слу­чае эле­мен­ты про­иг­ры­ва­те­ля ни­ко­гда не вер­нут стро­ку «probably», ес­ли type не вклю­ча­ет па­ра­метр codecs= со спи­ском муль­ти­ме­дий­ных ко­де­ков. Ес­ли про­иг­ры­ва­тель не уве­рен, что мо­жет про­иг­ры­вать дан­ные ука­зан­но­го ти­па, этот ме­тод вер­нет стро­ку «maybe».

load()

Этот ме­тод сбра­сы­ва­ет эле­мент про­иг­ры­ва­те­ля в ис­ход­ное со­стоя­ние и за­став­ля­ет его вы­брать ис­точ­ник дан­ных и на­чать за­груз­ку. Это про­ис­хо­дит ав­то­ма­ти­че­ски, ко­гда эле­мент впер­вые встав­ля­ет­ся в до­ку­мент, и вся­кий раз, ко­гда из­ме­ня­ет­ся зна­че­ние ат­ри­бу­та src. Од­на­ко при до­бав­ле­нии, уда­ле­нии или из­ме­не­нии вло­жен­ ных эле­мен­тов <source> ме­тод load() не­об­хо­ди­мо вы­зы­вать яв­но.

pause()

При­ос­та­нав­ли­ва­ет прои­гры­ва­ние.

play()

На­чи­на­ет про­иг­ры­ва­ние за­пи­си.