0
我很努力地录制音频并在移动Safari浏览器上重放。如何转换(音频)缓冲区为blob重播
这个来源绝对是神话般的。
onaudioprocess not called on ios11
我可以看到音频数据的块来了...
// get Buffers (Essentially a Uint8Array DataView of the same Float32 values)
var chunks = []
micStream.on('data', function(chunk) {
var raw = MicrophoneStream.toRaw(chunk)
chunks.push(raw)
});
function replay(){
var blob = new Blob(chunks, { 'type' : 'audio/webm;codecs=opus' });
var blobURL = window.URL.createObjectURL(blob)
var audio = new Audio();
audio.src = blobURL
audio.play()
}
但我不能让一滴重播。
如何将原始音频数据转换为blob并进行重放?
而我不知道哪个mineType既不使用。
如果我可以使用MediaRecorder API,
var chunks = []
mediaRecorder.ondataavailable = (event) => {
chunks.push(event.data);
}
function replay(){
var blob = new Blob(chunks, { 'type' : 'audio/webm;codecs=opus' });
var blobURL = window.URL.createObjectURL(blob)
var audio = new Audio();
audio.src = blobURL
audio.play()
}
这适用于桌面Chrome,但Safari浏览器不支持MediaRecorder API不幸。
有人可以帮助我吗?
在此先感谢。
您也可以参考以下内容,即修改为移动Safari浏览器的支持及新的navigator.mediaDevices.getUserMedia()API: https://github.com/tommysheu/Recorderjs –