跟读录音优先选 mp4 格式(Safari/Chrome 通用),解决家长端 iOS 听不到

- MediaRecorder 优先 audio/mp4,回退 webm;iOS Safari 可回放 mp4
- 清理历史 webm 录音(无法在 iOS 播放)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
jacobxu666
2026-08-05 23:13:50 +08:00
co-authored by Claude Opus 4.8
parent 673d1bc511
commit 2244f4e3ec
+6 -1
View File
@@ -29,7 +29,12 @@ function RecordBtn({ day, word }: { day: number; word: string }) {
const start = async () => {
try {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const mr = new MediaRecorder(stream);
// 优先选 Safari/Chrome 都能播放的 mp4,家长端 iOS 才能回放
const mime =
["audio/mp4", "audio/mp4;codecs=mp4a.40.2", "audio/webm;codecs=opus", "audio/webm"].find(
(t) => typeof MediaRecorder !== "undefined" && MediaRecorder.isTypeSupported(t),
) || "";
const mr = new MediaRecorder(stream, mime ? { mimeType: mime } : undefined);
const chunks: Blob[] = [];
mr.ondataavailable = (e) => chunks.push(e.data);
mr.onstop = async () => {