Spec-Zone.ru › Web APIs

MediaRecorder: метод start()

Метод start() интерфейса MediaRecorder начинает запись медиа в один или несколько объектов Blob.

Вы можете записать всю продолжительность медиа в один Blob (или до тех пор, пока не вызовете requestData()), или вы можете указать количество миллисекунд для записи за раз. Затем, каждый раз, когда это количество медиа будет записано, будет отправлено событие, чтобы вы могли действовать в отношении записанных медиа, а новый Blob будет создан для записи следующего фрагмента медиа.

Предполагая, что состояние MediaRecorder — state — inactive, start() устанавливает state в recording, затем начинает захват медиа из входного потока. Создается Blob, и данные собираются в нём, пока не истечёт период временного сегмента или не закончится исходное медиа. Каждый раз, когда Blob заполняется до этого момента (длительность временного сегмента или конец медиа, если длительность сегмента не была задана), в MediaRecorder отправляется событие dataavailable с записанными данными. Если исходный поток всё ещё воспроизводится, создаётся новый Blob, и запись продолжается в него, и так далее.

Когда исходный поток заканчивается, state устанавливается в inactive, и сбор данных прекращается. В MediaRecorder отправляется заключительное событие dataavailable, за которым следует событие stop.

Примечание: Если браузер не может начать запись или продолжить запись, он сгенерирует событие error, за которым последует событие dataavailable, содержащее собранные им Blob, а затем событие stop.

Синтаксис

start()
start(timeslice)

Параметры

timeslice Необязательно

Количество миллисекунд, которое необходимо записать в каждый объект Blob. Если этот параметр не указан, вся продолжительность медиа записывается в один Blob , если не вызван метод requestData() для получения Blob и запуска создания нового Blob, в который запись медиа будет продолжена.

Примечание: Как и другие значения времени в API веб-приложений, timeslice не является точным, и реальные интервалы могут быть немного больше из-за других задач, ожидающих обработки перед созданием следующего объекта blob.

Возвращаемое значение

None (undefined).

Исключения

Ошибки, которые могут быть обнаружены немедленно, выбрасываются как исключения DOM. Все остальные ошибки сообщаются через события error, отправляемые в объект MediaRecorder . Вы можете реализовать обработчик событий onerror для реагирования на эти ошибки.

InvalidStateError DOMException

Выбрасывается, если MediaRecorder не находится в состоянии inactive; вы не можете начать запись медиа, если она уже ведётся. См. свойство state.

NotSupportedError DOMException

Выбрасывается, если:

  • Поток медиа, который вы пытаетесь записать, неактивен.
  • Один или несколько потоков в потоке находятся в формате, который не может быть записан с текущей конфигурацией.
  • Параметр videoKeyFrameIntervalDuration и videoKeyFrameIntervalCount оба указаны при создании MediaRecorder.
SecurityError DOMException

Выбрасывается, если MediaStream настроен так, чтобы запретить запись. Например, так может быть, если источники получены с помощью getUserMedia(), когда пользователь отказался предоставить разрешение на использование устройства ввода. Это исключение также может быть передано как событие error, если параметры безопасности для источника медиа изменятся после начала записи.

Примеры

record.onclick = () => {
  mediaRecorder.start();
  console.log("recorder started");
};

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

Спецификация
Запись потока медиа
# dom-mediarecorder-start

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
start 47 79 25 36 14.1 47 25 36 14 5.0 47

См. также

  • Использование API записи потока медиа
  • Демонстрация Web Dictaphone: демонстрация MediaRecorder + getUserMedia + Web Audio API, созданная Крисом Миллсом (исходный код на GitHub.)
  • Демонстрация записи потока медиа на simpl.info, созданная Самом Даттоном.
  • getUserMedia()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/start

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API