在 Edge 和 Safari (emscripten) 中使用 SDL_mixer 播放 .ogg 文件

Posted

技术标签:

【中文标题】在 Edge 和 Safari (emscripten) 中使用 SDL_mixer 播放 .ogg 文件【英文标题】:Play .ogg file with SDL_mixer in Edge and Safari (emscripten) 【发布时间】:2016-06-01 09:43:59 【问题描述】:

我创建了一个程序,它使用 (SDL2) SDL_mixer 播放 .ogg 声音文件。

它适用于 Chrome、Firefox 和 Opera。但它在 MS Edge 和 Safari 中不起作用,因为缺少 ogg 声音支持。

我已将此命令添加到emcc,应该可以解决此问题:

-s USE_OGG=1

但是还是不行。

如何使 .ogg 声音文件在 Edge(和 Safari)中工作?

【问题讨论】:

似乎正在进行中。 github.com/kripken/emscripten/issues/3985 【参考方案1】:

你不能。

在撰写本文时,both Safari and MS Edge won't support .ogg,正如您所提到的。

由于 Emscripten 编译为 javascript,您最好找到一种方法让您的代码接受 Safari 和 MS Edge 支持的另一个音频扩展(回退),例如 .mp3 或 .m4a AAC(这是 mp4 的音频组件)。

【讨论】:

我不是 Emscripten 的专家,但如果它的代码编译成 web 技术,目前不可能让 .ogg 扩展在 Safari 和 Edge 上工作,他们根本不支持它。也许您公开的代码允许您在支持的地方启用 .ogg,但它不能强制浏览器识别它。你最好再寻找一个备用方案。 如果 .ogg 在浏览器中可用,那么它可以在没有 -s USE_OGG=1 的情况下工作

以上是关于在 Edge 和 Safari (emscripten) 中使用 SDL_mixer 播放 .ogg 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Edge 和 Safari (emscripten) 中使用 SDL_mixer 播放 .ogg 文件

在 Chrome、Safari 和 Edge 中显示 flex 对齐不正确,但在 Firefox 中正确

浏览器各个版本和系统(chrome/safari/edge/qq/360)

IE、Edge 和 Safari 中 document.querySelectorAll 的兼容性

Http/2 站点仅在 Safari 9 上无法加载 - 在 Chrome、IE、Edge、Firefox 上加载正常

在 Safari、Firefox 和 Edge VS Chrome 上带有(溢出-y)滚动的 flexbox 的不同行为