使用MediaElements.js 2.1.7的时候发现在Firefox和Opera中没有声音,在IE和Chrome中正常。仔细检查发现并不是没有声音,而是音量显示大约80%,但实际上是0%。手工调整一下音量就能出声音了。用2.1.5或2.1.6版本则正常,对比几个版本之后发现问题出现在mediaelement-and-player.min.js文件中,问题还是比较容易修复的。
实际上要修改的文件是最小化的版本,只是因为最小化之后不好阅读,所以先用原始版本做例子。打开mediaelement-and-player.js,在第1879行有个判断:
if (media.pluginType === 'native') {
media.setVolume(player.options.startVolume);
}
把这个判断注释掉声音就正常了。我第一次接触MediaElements.js,不知道这应该会不会带来新问题,但是2.1.5也是没有这个判断,测试结果正常。即是改为如下:
//if (media.pluginType === 'native') {
media.setVolume(player.options.startVolume);
//}
不过这个文件并不是插件运行时使用的版本。改了等于没改。真正要修改的地方在mediaelement-and-player.min.js的第83行最末尾。注意了,最小化版本大部分内容是压缩到同一行的,必须关闭自动换行才能对准行号:
d.pluginType==="native"&&d.setVolume(a.options.startVolume)
把这一整句改成:
d.setVolume(a.options.startVolume)
然后覆盖掉原文件就可以了。问题解决。