我正在尝试开发一个在线音乐点唱机(有点像“deezer”,我制作了一个小视频: http: //www.le-guevel.com/player.ogv)。我正在使用 jQuery jPlayer 在浏览器端读取音乐,但我遇到了 firefox 的问题:它不读取我的 mp3 文件。
我知道 Mozilla 出于专利原因拒绝实施它。我也知道 jPlayer 应该回退到 Flash 解决方案来读取 mp3。问题是我实际上读取了不同格式的文件(主要是 mp3 和 ogg)。从我在 jPlayer 源代码(2.1.0 版本中的〜l.640)中可以看到:
// If jPlayer is supporting any format in a solution, then the solution is used.
this.html.used = false;
this.flash.used = false;
$.each(this.solutions, function(solutionPriority, solution) {
$.each(self.formats, function(formatPriority, format) {
if(self[solution].support[format]) {
self[solution].used = true;
return false;
}
});
});
播放器决定使用 html5 或 flash(不是两者)。因此,当我用 ogg 和 mp3 初始化 jPlayer 时,播放器决定使用 html5(支持 ogg)。我可以更改解决方案的优先级(html 和 flash)。但是如果我将 flash 设置为最高优先级,播放器将不会播放我的 ogg 文件,因为 jPlayer 的 flash 二进制文件不支持 ogg。
有什么办法可以让它工作吗?
最简单的解决方案当然是以相同的格式对我的所有文件进行编码,但我不希望这样做。
第二种解决方案是强制 Firefox 读取 mp3。我知道 firefox 可以使用外部插件读取 mp3:我在我的 debian 上安装了 gecko-mediaplayer,我可以在 firefox 上读取 mp3 文件。但它与 html5 兼容吗?
第三种解决方案是编辑 jPlayer flash 插件以使其支持 ogg。但是我对 Actionscript 编程一无所知,我更喜欢使用 html5 ......
最后的解决方案是使用另一个浏览器(如 chromium),但我习惯于 firefox 并且更愿意保留它。
正如您可以想象的那样,我更喜欢第二种解决方案,但我不确定它是否可行。有人可以帮我吗?
谢谢 :) (对我可能糟糕的英语感到抱歉)。