Я создаю исследовательский эксперимент, который использует API WebAudio для записи аудиофайлов, произнесенных пользователем.
Я нашел решение для этого с помощью Recorder.js, и все работало нормально ... пока я не попробовал вчера.
Теперь я получаю эту ошибку в Chrome:
«AudioContext не был разрешен для запуска. Он должен быть возобновлен (или создан) после пользовательского жеста на странице».
И это относится к этой ссылке: Политика Web Audio API .
Похоже, это является следствием новой политики Chrome, изложенной по ссылке выше.
Итак, я попытался решить проблему с помощью resume () следующим образом:
var gumStream; //stream from getUserMedia()
var rec; //Recorder.js object
var input; //MediaStreamAudioSourceNode we'll be recording
// shim for AudioContext when it's not avb.
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext; //new audio context to help us record
function startUserMedia() {
var constraints = { audio: true, video:false };
audioContext.resume().then(() => { // This is the new part
console.log('context resumed successfully');
});
navigator.mediaDevices.getUserMedia(constraints).then(function(stream) {
console.log("getUserMedia() success, stream created, initializing Recorder.js");
gumStream = stream;
input = audioContext.createMediaStreamSource(stream);
rec = new Recorder(input, {numChannels:1});
audio_recording_allowed = true;
}).catch(function(err) {
console.log("Error");
});
}
Теперь в консоли я получаю:
Error
контекст успешно возобновлен
И поток не инициализируется.
Это происходит как в Firefox, так и в Chrome.
Что мне нужно сделать?