Я пытаюсь осознать MediaRecorder API, поэтому я написал простое веб-приложение, которое запускается, приостанавливает, возобновляет и останавливает запись звука. Код работает нормально, пока я не протестировал его в Firefox (последней версии).
Код Javascript:
var mediaRecorder = null,
constraints = { audio: true };
function onSuccess( stream ) {
mediaRecorder = new MediaRecorder( stream );
function getStatus() {
alert('The mediaRecorder is ' + mediaRecorder.state);
}
mediaRecorder.onstart = getStatus;
mediaRecorder.onpause = getStatus;
mediaRecorder.onresume = getStatus;
mediaRecorder.onstop = getStatus;
}
var onError = function(err) {
console.info('Error: ' + err);
}
navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
HTML-код:
<button type = "button" onclick = "mediaRecorder.start()">Start</button>
<button type = "button" onclick = "mediaRecorder.pause()">Pause</button>
<button type = "button" onclick = "mediaRecorder.resume()">Resume</button>
<button type = "button" onclick = "mediaRecorder.stop()">Stop</button>
Я понял, что в Firefox при нажатии на паузу mediaRecorder фактически приостанавливается, но не запускает событие паузы (onpause), и то же самое для возобновления.
Вопрос: Есть способ исправить эту проблему?
@PhilippHancke Большое спасибо, это имеет смысл. Об ошибке сообщили год назад!?!, Идиот, почему они не исправили ее!
@PhilippHancke Похоже, этот MediaRecorder очень нестабильный.
@CryptoBird, потому что он наткнулся на неясную область спецификация.
@Dexter Ты УДИВИТЕЛЬНЫЙ, теперь картина кристально чистая.
@PhilippHancke Ребята, поздравляю, ошибка исправлена ошибка 1458538
К сожалению, это ошибка в Mozilla Firefox, и в качестве обходного пути я нашел эту потрясающую кроссбраузерную библиотеку, и она сработала для меня как шарм: Audrec
Ребята, поздравляем, ошибка исправлена ошибка 1458538
известная ошибка, см. bugzilla.mozilla.org/show_bug.cgi?id=1363915