Opera 是否支持音频 mp3 文件?
Does Opera support audio mp3 files?
根据 w3schools 的 caniuse site, Opera supports audio
tag. In accordance with w3schools, mp3 is also supported by Opera. But this code doesn't work. Even the sample,如果删除了 ogg 部分,则不起作用 -
<audio controls>
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
我已经在 Windows 7 64 位 (WoW64) 至 Spoon.net 上使用 Opera 20.0.1387.77 运行 对其进行了测试。而且,如果不支持,那么我应该如何捕获错误并通知用户?我尝试使用 $("#audio").error.code
,但 error
是 null
。
当 Opera 转向使用 Webkit 作为渲染引擎时,他们放弃了对原生 mp3(和 H.264)的支持,请参阅此博客 post:https://dev.opera.com/blog/300-million-users-and-move-to-webkit/ - W3Schools 上的信息已过期日期,可能是 webkit 出现之前的日子(PSA:永远不要访问 W3Schools)。
要检查您可以播放什么类型的音频,您可以使用 canPlayType
方法,如下所示:
var a = document.createElement('audio');
return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
来源:http://diveintohtml5.info/everything.html
还有很多其他方法可以进行这种检测,您可以在这个问题上看到:How to detect HTML5 audio MP3 support
编辑:这可能是版本问题 - 具体信息很少,但我刚刚安装了最新版本的 Opera(27,OSX),我可以正常播放 Mp3。
Opera 至少宣传支持 mp3、canPlayType("audio/mpeg") returns "probably" 并且上面来自 Bulk 的脚本确实 return 正确,但实际上它不支持它(它默默地失败了)。这是全新的 Windows 7 安装,没有任何编解码器包和最新的 Opera。
测试:
经过运行 this JSFiddle通过在BrowserStack上OS和Opera版本的不同配置,考虑到从Presto到WebKit的切换,我得出了以下兼容性信息。
Opera MP3 兼容性:
列出列表项、版本号、.canPlayType('audio/mpeg;')
return 值和实际 success/failure 播放音频文件。
Windows 8 和 8.1:
- 25-27:
"probably"
, 成功
- Opera <= 24:
""
, 失败
Windows 7:
- Opera 27:
"probably"
, 失败
- Opera <= 26:
""
, 失败
Windows 经验值:
- Opera <= 27:
""
, 失败
OS X 10.10 和 10.9:
- Opera 26-27:
"probably"
, 成功
- Opera <= 25:
""
, 失败
OS X 10.8 和 10.7:
- Opera <= 27:
""
, 失败
OS X 10.6:
- Opera <= 25:
""
, 失败
Opera 27 在 Windows 7 returning "probably"
但未能播放是相当不幸的。
结论:
从这些信息来看,似乎 Opera 本身并不包含解码 MP3 音频文件所必需的代码,并且只有在主机 OS 提供兼容库的情况下它才能这样做。 Opera 用户可能拥有播放 MP3 所需的库,但不能保证。
根据 w3schools 的 caniuse site, Opera supports audio
tag. In accordance with w3schools, mp3 is also supported by Opera. But this code doesn't work. Even the sample,如果删除了 ogg 部分,则不起作用 -
<audio controls>
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
我已经在 Windows 7 64 位 (WoW64) 至 Spoon.net 上使用 Opera 20.0.1387.77 运行 对其进行了测试。而且,如果不支持,那么我应该如何捕获错误并通知用户?我尝试使用 $("#audio").error.code
,但 error
是 null
。
当 Opera 转向使用 Webkit 作为渲染引擎时,他们放弃了对原生 mp3(和 H.264)的支持,请参阅此博客 post:https://dev.opera.com/blog/300-million-users-and-move-to-webkit/ - W3Schools 上的信息已过期日期,可能是 webkit 出现之前的日子(PSA:永远不要访问 W3Schools)。
要检查您可以播放什么类型的音频,您可以使用 canPlayType
方法,如下所示:
var a = document.createElement('audio');
return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
来源:http://diveintohtml5.info/everything.html
还有很多其他方法可以进行这种检测,您可以在这个问题上看到:How to detect HTML5 audio MP3 support
编辑:这可能是版本问题 - 具体信息很少,但我刚刚安装了最新版本的 Opera(27,OSX),我可以正常播放 Mp3。
Opera 至少宣传支持 mp3、canPlayType("audio/mpeg") returns "probably" 并且上面来自 Bulk 的脚本确实 return 正确,但实际上它不支持它(它默默地失败了)。这是全新的 Windows 7 安装,没有任何编解码器包和最新的 Opera。
测试:
经过运行 this JSFiddle通过在BrowserStack上OS和Opera版本的不同配置,考虑到从Presto到WebKit的切换,我得出了以下兼容性信息。
Opera MP3 兼容性:
列出列表项、版本号、.canPlayType('audio/mpeg;')
return 值和实际 success/failure 播放音频文件。
Windows 8 和 8.1:
- 25-27:
"probably"
, 成功 - Opera <= 24:
""
, 失败
Windows 7:
- Opera 27:
"probably"
, 失败 - Opera <= 26:
""
, 失败
Windows 经验值:
- Opera <= 27:
""
, 失败
OS X 10.10 和 10.9:
- Opera 26-27:
"probably"
, 成功 - Opera <= 25:
""
, 失败
OS X 10.8 和 10.7:
- Opera <= 27:
""
, 失败
OS X 10.6:
- Opera <= 25:
""
, 失败
Opera 27 在 Windows 7 returning "probably"
但未能播放是相当不幸的。
结论:
从这些信息来看,似乎 Opera 本身并不包含解码 MP3 音频文件所必需的代码,并且只有在主机 OS 提供兼容库的情况下它才能这样做。 Opera 用户可能拥有播放 MP3 所需的库,但不能保证。