MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

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

MediaStream Recording API, иногда просто называемый Media Recording API или MediaRecorder API, тесно связан с Media Capture and Streams API и WebRTC API. MediaStream Recording API делает возможным захват данных, сгенерированных MediaStream или HTMLMediaElement объектом для анализа, обработки или сохранения на дисковое пространство. С ним так же удивительно легко работать.

Базовая концепция

MediaStream Recording API состоит из единого интерфейса, MediaRecorder, который делает всю работу, принимая данные из MediaStream и доставляя их обработчику. Данные поставляются с помощью серии dataavailable событий, уже в том формате, который был указан, когда MediaRecorder был создан. Процесс записи потока прост:

  1. Установите MediaStream или HTMLMediaElement (в виде <audio> или <video> элемента), чтобы тот служил в качестве источника медиа-данных.
  2. Установите MediaRecorder.ondataavailable обработчик событий для dataavailable событий; он будет вызываться каждый раз, как данные будут доступны.
  3. Создайте MediaRecorder объект, указав исходный поток и любые опции по желанию (такие как MIME-тип контейнера или желаемый битрей его треков).
  4. Как только исходная медиа запустится и будет достигнута точка, где вы будете готовы записать видео, вызовите MediaRecorder.start() для начала записи.
  5. Ваш dataavailable обработчик будет вызываться каждый раз, как появлятся данные, готовые для выполнения вами над ними ожидаемых операций; событие имеет дата-атрибут, чье занчение Blob, который содержит медиа-данные. Вы можете принудительно вызвать dataavailable событи, доставляя тем самым последние данные, чтобы вы могли отфильтровать их, сохранить и тд.
  6. Запись останавливается автоматически, когда исходное медиа закончит проигрываться.
  7. Вы можетет остановить запись в любое время, вызвав  MediaRecorder.stop().

Вы можете так же использовать свойства MediaRecorder объекта для опредления состояния процесса записи и его pause() и resume() методы, чтобы остановить и возобновить запись исходной медиа.

Если вам нужно или вы хотите проверить, поддерживается ли определенный MIME-тип, это так же возможно. Просто вызовите MediaRecorder.isMimeTypeSupported().

Чтобы узнать больше о MediaStream Recording API, смотрите Using the MediaStream Recording API, который показывает, как использовать API для записи аудио клипов. Другая статья, Recording a media element, описывает, как получить поток из  <audio> или <video> элементов и использовать захватывающие потоки (в этом случае, запись и сохранение их на локальный диск).

Ссылки

BlobEvent

MediaRecorder

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

Specification Status Comment
MediaStream Recording Рабочий черновик Initial definition

Поддержка браузерами

Feature Chrome Firefox (Gecko) Internet Explorer Microsoft Edge Opera Safari (WebKit)
Basic support 47.0 25.0 (25.0) Нет ? Нет Нет
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support Нет 47.0 25.0 (25.0) 1.3[1] Нет Нет Нет 47.0

[1] The initial Firefox OS implementation only supported audio recording.

[2] To use MediaRecorder in Chrome 47 and 48, enable experimental Web Platform features from the chrome://flags page.

[3] Audio recording works in Chrome 49 and above; Chrome 47 and 48 only support video recording.

Смотри так же

Метки документа и участники

 Внесли вклад в эту страницу: aayaresko, curdwithraisins
 Обновлялась последний раз: aayaresko,