Firefox没有播放来自互联网的M4A音频文件,localhost正在运行

时间:2017-05-04 20:40:06

标签: javascript firefox audio m4a

我有一个奇怪的问题,已经失去了几个小时:

当我尝试从Firefox中的Web位置播放任何M4A音频文件时,我收到一条错误消息,指出不支持视频格式或mime类型。 但是当我下载相同的M4A文件时,它在Firefox中从磁盘本地播放它正在运行。

我用这个文件尝试过: http://techslides.com/demos/samples/sample.m4a

在Chrome和IE浏览器中一切正常。 我使用的是Firefox 53,32位版本。

有谁知道如何在Firefox中解决这个问题?

更新

我设置了一个测试页面来阐明Firefox中的差异:

http://123-bb.de/tests/audiotest

结果很有意思:如果直接从链接调用,第一个M4A文件没有问题,但在调用Javascript Audio时不会播放。 第二个文件正好相反。

所以问题是,如何在加载为Javascript音频元素时让Firefox正确设置mime类型?

2 个答案:

答案 0 :(得分:2)

Firefox和m4a格式的问题是由于许可。浏览器使用内置操作系统库来播放文件而不支付许可费。要播放的m4a文件needs to be in mp4 container - 需要audio/mp4 MIME type

从链接播放时链接的文件有 - audio/mpeg。当我尝试嵌入它in JSFiddle时,由于服务器配置,firefox会将其正确检测为 - audio/mp4。您可以控制文件的MIME类型,但只能在您的服务器上控制,更多的是here

答案 1 :(得分:1)

我从Firefox团队那里得到了我的问题的答案:

https://bugzilla.mozilla.org/show_bug.cgi?id=1362358

简而言之:Firefox有两种不同的方式来查找mime类型。当从Javascript音频对象调用音频文件时,Firefox会忽略http响应中的mime类型,并通过嗅探音频文件来检测它。 我的M4A文件有3gpp编码,Firefox不支持此编解码器。