MediaRecorder.ondataavailable

Этот перевод не завершён. Пожалуйста, помогите перевести эту статью с английского

MediaRecorder.ondataavailable обработчик события (часть MediaStream Recording API) обрабатывает dataavailable событие, позволяет выполнить код, когда тип данных  Blob, представляющий обработанные данные становиться доступным для использования.

Событие dataavailable вызывается когда MediaRecorder доставляет медиа данные в ваше приложение для использования. Они представляются в виде объекта типа  Blob, содержащего данные. Это происходит в четырёх ситуациях:

  • Когда медиа поток завершается, любые мультимедийные данные ещё не доставленные в обработчик ondataavailable немедленно передаются в объект Blob.
  • При вызове метода  MediaRecorder.stop() , порция медиаданных, объем которых был захвачен с момента начала записи или после последнего вызова события dataavailable помещаються в объект  Blob;  после этого захват завершается.
  • При вызове метода MediaRecorder.requestData() порция медиаданных, объем которых был захвачен с момента начала записи, или после последнего вызова события dataavailable помещаются в вновь созданный объект типа Blob , и захват порций медиаданных продолжается уже в этот новый объект blob.
  • Если свойство  timeslice передается в метод MediaRecorder.start(), который запускает захват порций медиаданных, событие  dataavailable запускается каждые timeslice миллисекунд. Это значит, что каждый объект типа blob будет иметь специфичиский размер (за исключением последнего, который может быть короче, содержащий все, что осталось с момента последнего события ). Поэтому, если метод выглядит так : recorder.start(1000); то событие  dataavailable будет запускаться каждую секунду общего потока медиа захвата, и обработчик события будет вызываться каждую секунду, содержащий в параметре объект типа  blob , который будет содержать объем порции записи медиаданных продолжительностью в одну секунду. Можно использовать свойство  timeslice вместе с MediaRecorder.stop() и MediaRecorder.requestData() для создания нескольких объектов типа blob одинакового объема данных , плюс последние короткие объекты типа blob.

Медиаданные, содержащиеся в объекте типа Blob доступны в свойстве data , возвращаемого в параметре объекта события dataavailable.

Синтаксис

MediaRecorder.ondataavailable = function(event) { ... }
MediaRecorder.addEventListener('dataavailable', function(event) { ... })

Пример

...

  mediaRecorder.onstop = function(e) {
    console.log("data available after MediaRecorder.stop() called.");

    var audio = document.createElement('audio');
    audio.controls = true;
    var blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' });
    var audioURL = window.URL.createObjectURL(blob);
    audio.src = audioURL;
    console.log("recorder stopped");
  }

  mediaRecorder.ondataavailable = function(e) {
    chunks.push(e.data);
  }

...

Спецификации

Specification Status Comment
MediaStream Recording
Определение 'MediaRecorder.ondataavailable' в этой спецификации.
Рабочий черновик Initial definition

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
ondataavailableChrome Полная поддержка 49Edge Полная поддержка 79Firefox Полная поддержка 25IE Нет поддержки НетOpera Полная поддержка 36Safari Нет поддержки НетWebView Android Полная поддержка 49Chrome Android Полная поддержка 49Firefox Android Полная поддержка 25Opera Android Полная поддержка 36Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 5.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

Смотри так же