navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
const recorder = new MediaRecorder(stream);
const chunks = [];
recorder.ondataavailable = e => chunks.push(e.data);
recorder.onstop = () => {
const blob = new Blob(chunks, { type: 'audio/webm' });
// 上傳或播放
};
recorder.start();
// 需停止時 recorder.stop()
})
.catch(err => console.error('權限拒絕或不支持', err));優點:零原生代碼;缺點:iOS Safari 直到 14.3+ 才支持,格式限制(WebM/OPUS),無法靜默錄音。
window.native.startRecord()。MediaRecorder / iOS AVAudioRecorder)實現錄音、編碼(AAC/MP3)、存儲。window.onRecordComplete({path, duration})。