我有一个奇怪的问题,已经失去了几个小时:
当我尝试从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类型?
答案 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不支持此编解码器。