В моем примере приложения ReactJs я использую реагировать-мультимедиа-захват, который использует navigator.mediaDevices.getUserMedia и API MediaRecorder для записи видео.
Я могу записывать видео из Chrome, но в Safari я не могу захватить видео. Ошибка что-то вроде
MediaRecorder is not defined.
Может кто-нибудь, пожалуйста, помогите мне, например:
Поддерживает ли Safari базовую запись видео?
Проклятое яблоко, слишком дорого и слишком много неподдерживаемых функций, лол :D



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Базовая реализация API MediaStream Recorder только что была представлена в Safari Technology Preview 73 для macOS (январь 2019 г.).
Я рассмотрел поддерживаемые/неподдерживаемые функции в эта статья.
Надеемся, что более полная реализация скоро появится в Safari 12.x на macOS и iOS.
Спасибо за статью. Знаете ли вы, можно ли использовать API MediaRecorder в приложении для iOS? Я спрашивал об этом здесь: stackoverflow.com/questions/62205865/…
Октавиан Наику
Базовая реализация API MediaStream Recorder только что была представлена в Safari Technology Preview 73 для macOS (январь 2019 г.).
Вы пробовали записывать видео в Safari IOS 12.2?
Почему загрузка изображения через камеру работает в мобильном сафари, а не в iOS PWA?
В настоящее время Safari не поддерживает MediaRecorder API по умолчанию, но вы можете включить их в разделе «Разработка» > «Экспериментальные функции» > MediaRecorder.
Способ записи видео из сафари заключается в использовании однорангового соединения и захвате видео на другом конце. Есть несколько приложений с открытым исходным кодом и сторонних сервисов, которые предлагают это, и они довольно стабильны.
Если вы собираетесь поддерживать запись только с мобильного устройства, вы можете использовать файловый API HTML5, который откроет камеру одним щелчком мыши. вы можете обрезать его на определенную продолжительность, используя ffmpeg или службы мультимедиа Azure.
<input id = "videoFile" type = "file" class = "hidden" accept = "video/*" capture = "">
Просто не забудьте сохранить этот файл в формате .mp4 с использованием JavaScript, чтобы его можно было воспроизводить на любом устройстве или с тегом <video>.
var file = $('#videoFile')[0];
var blob = file.files[0].slice(0, file.files[0].size, 'video/mp4');
var newFile = new File([blob], 'video.mp4', { type: 'video/mp4' });
В последней версии Safari вы можете включить MediaRecorder из меню «Разработка».
Попробуйте этот Демонстрация Cam Recorder HTML5, который также содержит подробные инструкции для Safari.
Они поддерживают захват (например, getUserMedia), но еще не поддерживают API MediaRecorder. Здесь нечего делать, кроме рисования на холсте и создания видео из неподвижных изображений, но не надо.