使用方法
- 将音频文件拖到上传区域,或点击选择文件,支持 MP3、WAV、OGG、M4A、FLAC 等格式。
- 在预览播放器中试听,确认是正确的声音。
- 用于 HTML audio 元素时选择 Data URI,用于接口请求时选择纯 Base64。
- 复制结果,或下载为 .txt 文件。
在网页中播放 Base64 音频
带有音频 MIME 类型的 Data URI,可以用在浏览器需要音频 URL 的任何地方:
<audio controls src="data:audio/mpeg;base64,..."></audio>
// JavaScript:点击按钮时播放一段短音效
const click = new Audio('data:audio/wav;base64,...');
button.addEventListener('click', () => click.play());
在访问者与页面产生交互之前,浏览器通常会阻止声音自动播放,所以请在点击或按键事件中调用 play(),不要在页面加载时直接播放。
适合使用 Base64 音频的场景
- 简短的界面音效。只有几 KB 的点击声、通知提示音和报错音可以直接放进 JavaScript 包中,无需额外请求,随时都能立即播放。
- 离线和单文件应用。小游戏、自助终端、电子课件以及必须脱离服务器、靠单个文件运行的 HTML 报告,可以把音效内嵌在文件里。
- 语音识别接口。很多云端语音识别服务允许在 JSON 请求中用 Base64 字段(常见名称为
content或audio)提交一段短录音。这些服务通常对格式、采样率和声道数有要求,而本工具会按原样编码文件,不会转换格式或重新采样。 - 测试样本。音频处理代码的测试可以把一小段样本保存为字符串常量。
不适合使用 Base64 的情况
Base64 会让体积增加约三分之一,而且浏览器必须收到整个字符串后才能开始播放,既不能流式传输,也无法单独缓存,拖动进度时也不能按范围请求。一段 5 分钟、128 kbps 的 MP3 约为 4.8 MB,编码后会在 HTML 或 JavaScript 中变成约 6.4 MB 的文本,而且该文件每次更新都要重新下载。音乐、播客等较长的录音,请使用普通音频文件。经验上,只把几秒钟的声音内嵌到代码里。
音频格式与 MIME 类型
| 格式 | Data URI 前缀 | 说明 |
|---|---|---|
| MP3 | data:audio/mpeg;base64, | 体积小,所有浏览器都能播放 |
| WAV | data:audio/wav;base64, | 未压缩,体积大,适合极短的声音 |
| OGG(Vorbis、Opus) | data:audio/ogg;base64, | 体积小,旧版 Safari 无法播放 |
| M4A(AAC) | data:audio/mp4;base64, | 体积小,兼容性好 |
| FLAC | data:audio/flac;base64, | 无损,比 MP3 和 AAC 大得多 |
在不同的操作系统上,文件的类型可能显示为 audio/x-wav、audio/x-m4a 等变体。浏览器一般也能播放这些类型;如果某个平台要求特定类型,可以手动修改前缀。
常见问题
MP3 的 Data URI 应该用什么 MIME 类型?
audio/mpeg,所以 Data URI 以 data:audio/mpeg;base64, 开头。网上也常见 audio/mp3,部分浏览器可以接受,但 audio/mpeg 才是最稳妥的写法。为什么预览播放器无法播放我的文件?
播放器依赖浏览器内置的解码器。如果浏览器不支持某种格式(例如旧版 Safari 不支持 OGG),预览就不会有声音,但 Base64 输出仍然是文件的完整副本。
Base64 音频最长可以多长?
工具可以编码最大 100 MB 的文件,但这样的体积远不适合内嵌。用于内嵌时,建议控制在几秒钟、几十 KB 以内。用于语音识别接口时,请查看内联音频的大小限制,它往往比上传到存储服务的音频低得多。
可以在这里把 MP3 转成 WAV 吗?
不可以。工具会按原样编码文件,不改变格式、码率或采样率。请先用音频编辑软件或 FFmpeg 等命令行工具转换格式,再对结果进行编码。
我的音频会被上传吗?
不会。编码和播放都在浏览器中完成,文件始终保留在你的设备上。