J'ai du mal à enregistrer du son et à le rejouer sur un safari mobile.Comment convertir un buffer (audio) en blob pour le rejouer
Cette source est absolument fabuleuse.
onaudioprocess not called on ios11
Je peux voir le bloc de données audio arrive ...
// 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()
}
Mais je ne pouvais pas faire blob de rejouer. Comment puis-je convertir les données audio brutes en BLOB et les lire?
Et je n'ai aucune idée de quel type de mine utiliser.
si je peux utiliser 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()
}
Cela fonctionne sur le bureau Chrome, mais Safari ne supporte pas l'API MediaRecorder malheureusement.
Quelqu'un pourrait-il m'aider?
Merci d'avance.
Vous pouvez également consulter ce qui suit, qui a modifié à la fois le soutien de safari mobile et plus récent navigator.mediaDevices.getUserMedia() API: https://github.com/tommysheu/Recorderjs –