Soundcloud 未能承认他们对自定义播放器的错误。许多网站都受到影响。这是我上一个问题的链接
https://stackoverflow.com/questions/16993681/soundcloud-custom-player-skin-not-playing-next-tracks
Soundcloud 未能承认他们对自定义播放器的错误。许多网站都受到影响。这是我上一个问题的链接
https://stackoverflow.com/questions/16993681/soundcloud-custom-player-skin-not-playing-next-tracks
我可以确认该错误也存在。我在他们的 github 页面上创建了一个关于它的问题,并且我还通过电子邮件发送了支持。过去两天我一直在尝试查看是否可以通过以某种方式修改他们的代码来解决它,但我很确定这个错误存在于通过他们的 API 传递的实际 flash 有效负载中,而不是在 javascript 端东西的。
编辑:好的,我想出了一个临时解决方案来规避 soundcloud 的错误。
在第 209 行附近的 sc-player.js 中,您应该看到:
load: function(track) {
var url = track.uri;
if(player){
player.api_load(url);
}else{
// create a container for the flash engine (IE needs this to operate properly)
$('<div class="sc-player-engine-container"></div>').appendTo(document.body).html(flashHtml(url));
}
这是使用 api_load 调用将新曲目注入 Flash 播放器的调用。问题是现在完全不起作用。因此,我们不使用该 api,而是销毁现有的音频引擎并用一个新的引擎替换它,如下所示:
load: function(track) {
var url = track.uri;
if(player){
// player.api_load(url);
$('.sc-player-engine-container').html(flashHtml(url));
}else{
// create a container for the flash engine (IE needs this to operate properly)
$('<div class="sc-player-engine-container"></div>').appendTo(document.body).html(flashHtml(url));
}
现在它将在第一首曲目完成后或用户切换曲目时播放曲目。这不是最优的,因为我们必须继续从 soundcloud 加载额外的资源,但是 soundcloud 让我们陷入困境,我目前没有其他可行的解决方案。
确实,我注意到自定义播放器几天后就无法正常工作。我为仅支持 html5 音频的 webkit 浏览器找到了一个解决方案:您必须包含以下脚本(从源代码复制):
它应该只在支持 html5 音频的浏览器上解决问题,但它仍然不适用于 flashplayer 后备。Firefox 21 Mac版还不支持mp3,用flash来串流音频...
我正在等待 soundcloud 开发支持关于这一点的答复。
干杯。
通过跟踪 Soundcloud Github 页面从 jQuery 1.4.2 到 1.9.0 的更新,我能够解决 Safari 和 Chrome 中的问题。 https://github.com/soundcloud/soundcloud-custom-player
我还必须按照此处所述进行替换$.browser.msie
:navigator.userAgent.match(/msie [6]/i)
Fancybox 不适用于 jQuery v1.9.0 [ f.browser is undefined / Cannot read property 'msie' ]
我联系了 Soundcloud 开发人员,他认为这可能是 Firefox/Flash 问题。更新 Flash 对我没有任何帮助,而且问题最初同时出现在所有浏览器中。我应用了 deweydb 的解决方法,一切正常。