Soundcloud未能承认他们与自定义播放器的错误。许多网站都受到影响。这是我上一个问题的链接
https://stackoverflow.com/questions/16993681/soundcloud-custom-player-skin-not-playing-next-tracks
答案 0 :(得分:4)
我可以确认该bug也存在。我在他们的github页面上创建了一个issue,我也通过电子邮件发送了支持。我花了两天时间试图看看我是否可以通过某种方式修改代码来解决它,但我很确定在通过其API传递的实际闪存有效负载中存在错误,而不是在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让我们处于困境,我认为目前没有其他可行的解决方案。
答案 1 :(得分:2)
事实上,我注意到自定义播放器几天后无法正常工作。 我找到了仅支持html5音频的webkit浏览器的解决方案: 你必须包括以下脚本(从源代码复制):
它应该只在html5音频支持的浏览器上解决问题,但它仍然无法与flashplayer回退一起使用。 Firefox 21 Mac版还不支持mp3,并使用flash进行流音频...
我正在等待soundcloud dev支持关于这一点的答案。
干杯。
答案 2 :(得分:1)
通过遵循从jQuery 1.4.2到1.9.0的Soundcloud Github页面更新,我能够解决Safari和Chrome中的问题。 https://github.com/soundcloud/soundcloud-custom-player
我还必须将$.browser.msie
替换为navigator.userAgent.match(/msie [6]/i)
,如下所述:Fancybox doesn't work with jQuery v1.9.0 [ f.browser is undefined / Cannot read property 'msie' ]
我联系了Soundcloud开发人员,他说这可能是Firefox / Flash问题。更新Flash对我没有任何作用,并且问题最初在所有浏览器中同时发生。我应用了deweydb的解决方法,一切运行良好。