MEDIA_ERR_DECODE表示浏览器已成功加载媒体文件但解码中途失败,常见于编码不标准、元数据损坏或格式声明不符(如OGG内含Opus却声明audio/ogg),需用ffprobe验证真实编码并用FFmpeg转为标准格式。

MEDIA_ERR_DECODE 不是路径错、不是网络挂,是浏览器加载成功后解码器当场报错——常见于编码不标准、元数据损坏或浏览器根本不认这个“MP3”。
为什么 MEDIA_ERR_DECODE 总在 Chrome/Firefox 里静默出现?
它和 MEDIA_ERR_SRC_NOT_SUPPORTED(code: 4)不同:后者是格式压根不支持,前者是“文件能读、头能解析、但解码中途崩了”。典型诱因包括:
- MP3 文件用了非标准封装(如 ID3v2.4 标签过大、含非法帧同步字节)
- WAV 使用 IEEE Float 编码(Chrome 直接拒解,Firefox 可能卡在首帧)
- OGG 封装了 Opus 而非 Vorbis(
type="audio/ogg"仅承诺 Vorbis,Opus 需用audio/opus单独声明) - FFmpeg 导出时未重置时间基(
ffmpeg -i in.mp3 -c:a libmp3lame -ar 44100 out.mp3比直接 copy 更稳)
用 ffprobe 看清真实编码,别信后缀名
双击文件看属性没用。打开终端执行:
ffprobe -v quiet -show_entries stream=codec_name,codec_type,sample_rate,channels,profile -of default a.mp3
重点关注输出中是否含这些字段:
-
codec_name=mp3✅(不是 mp3float、mp3on4) -
profile=LC✅(AAC-LC 是 Safari 唯一稳定支持的 AAC 子集) -
sample_rate=44100或48000✅(避开 32000、22050 等冷门采样率) -
codec_name=vorbis且无opus字样 ✅(OGG 必须是 Vorbis)
三步转出浏览器友好的音频文件
别用在线转换器,它们常偷偷加广告水印或改错 profile。本地用 FFmpeg 一行搞定:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- MP3 回炉(强制标准 LAME LC 编码):
ffmpeg -i in.mp3 -c:a libmp3lame -q:a 2 -ar 44100 -ac 2 out.mp3 - OGG 生成(Vorbis 编码,禁用 Opus):
ffmpeg -i in.wav -c:a libvorbis -q:a 4 -ar 44100 -ac 2 out.ogg - WAV 降级(只留 PCM S16LE,砍掉浮点):
ffmpeg -i in.wav -c:a pcm_s16le -ar 44100 -ac 2 out.wav
转完立刻用 ffprobe 对比前后 codec_name 和 profile —— 如果还是 fltp(浮点)或 unknown,说明输入源本身已损坏,得换原始录音文件。
AudioContext.decodeAudioData() 解码失败时该查什么?
这个 API 报错不会返回具体错误码,但失败原因高度集中:
-
AudioContext.state !== 'running':必须先audioCtx.resume()(尤其 iOS/Safari) - 传入的是 Blob 而非 ArrayBuffer:FileReader 读取后必须用
result.target.result取 ArrayBuffer - ArrayBuffer 长度为 0:说明 FileReader 加载失败,检查
onerror事件 - 内存超限:单个 >100MB 的 WAV 文件在低端 Android 上大概率触发
RangeError
最易被忽略的是:Safari 对 OGG/Vorbis 的 decodeAudioData() 支持极差,哪怕 能播,API 也可能静默失败 —— 这种情况务必 fallback 到 MP3 + audio/mpeg。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










