#javascript #webrtc #recordrtc
#javascript #webrtc #запись rtc
Вопрос:
Я разрабатываю веб-приложение для записи видео.
Я попробовал приведенный ниже код, но проблема в том, что он отлично работает с внешней камерой, но во встроенной камере ноутбука с тем же браузером ошибка не найдена.
Я использую Firefox 60.6.1
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(constraints)
.then(function(stream) {
//load the stream in the video variable
video.srcObject = stream;
//load the stream in revokeAccess variable
revokeAccess=stream;
//video playback
video.play();
/*
Optional to avoid the dual audio disturbance. Playback audio is muted
*/
video.muted= true;
if (MediaRecorder.isTypeSupported('video/webm;codecs=vp9')) {
var options = {mimeType: 'video/webm;codecs=vp9'};
console.log("using vp9");
} else if (MediaRecorder.isTypeSupported('video/webm;codecs=h264')) {
var options = {mimeType: 'video/webm;codecs=h264'};
console.log("using h264");
} else if (MediaRecorder.isTypeSupported('video/webm;codecs=vp8')) {
var options = {mimeType: 'video/webm;codecs=vp8',videoBitsPerSecond : 1500000,audioBitsPerSecond : 160000};
console.log("using vp8");
}else{
console.log('isTypeSupported is not supported, using default codecs for browser');
}
//load the stream and type of video in the function
mediaRecorder = new MediaRecorder(stream,options);
//handle the data availability
mediaRecorder.ondataavailable = handleDataAvailable;
//Start the recording
mediaRecorder.start();
alert("Started Recording");
//push the data into chunks(array)
function handleDataAvailable(event) {
if (event.data.size > 0) {
recordedChunks.push(event.data);
console.log(recordedChunks);
} else {
alert(event);
}
}
//disable the Start Recording button
document.getElementById("startRecording").disabled = true;
})
.catch(function(error) {
//handle the device not found exception
alert("Camera not Found !! Please connect camera properly");
console.log(error);
});
}
Я хочу, чтобы приложение работало на каждой платформе.
Комментарии:
1. Вы имеете в виду
NotFoundError
? Это предполагает, что камера не работает или проблема с драйвером. Работает ли камера в других браузерах или приложениях? Что это за модель?2. Он переходит в цикл else, не запрашивая разрешения. Камера работает, когда я открываю камеру из опции камеры Windows
3. Работает ли это в других браузерах? Что это за модель?
4. Он работает на настольном Firefox 60.6.1 с внешней камерой, но не работает в Firefox 60.6.1 для ноутбука со встроенной камерой
5. Если вы не можете ответить на мои вопросы, я не могу вам помочь.
Ответ №1:
Привет всем разработчикам, спасибо за вашу поддержку и быстрый ответ.
Я исправил проблемы, используя приведенное ниже добавление адаптера в коде.
var getUserMedia = navigator.getUserMedia ||
navigator.mozGetUserMedia ||
navigator.webkitGetUserMedia;
Ответ №2:
Если вы хотите поддерживать устаревший браузер, проверьте следующее.
https://github.com/webrtcHacks/adapter
Адаптер WebRTC
adapter.js это прокладка для защиты приложений от изменений спецификаций и различий в префиксах. На самом деле стандарты и протоколы, используемые для реализаций WebRTC, очень стабильны, и существует всего несколько имен с префиксами. Для получения полной информации о взаимодействии см. webrtc.org/web-apis/interop .
Этот репозиторий раньше был частью организации WebRTC на github, но переехал. Мы стремимся обновлять старый репозиторий новыми версиями.
Кроме того, вы можете проверить свою аппаратную среду в firefox.
В адресной строке браузера введите следующее
о: поддержка