Я следил за этой статьей ( код до шага 6), чтобы сделать аудиомагнитофон, как показано ниже. После создания audioBlob
я вызываю пользовательскую функцию для загрузки большого двоичного объекта. Эта функция работает для других типов файлов.
Я передаю { type: 'audio/wav' }
конструктору Blob
. Полученный файл действительно притворяется волновым файлом и будет нормально воспроизводиться в браузере, но не на iOS. Я проверил с помощью http://checkfiletype.com/ и обнаружил, что файл на самом деле был WebM:
Как убедиться, что файл действительно является файлом .wav
?
Код, отредактированный из этой статьи:
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
const audioChunks = [];
mediaRecorder.addEventListener("dataavailable", event => {
audioChunks.push(event.data);
});
mediaRecorder.addEventListener("stop", () => {
const audioBlob = new Blob(audioChunks, { type: 'audio/wav' });
// Custom upload function
uploadFile(audioBlob);
});
setTimeout(() => {
mediaRecorder.stop();
}, 3000);
});