通过单击Amazon S3上托管的链接更改jPlayer上的歌曲

各位大家好,感谢您提前帮助。

我有一个ruby on rails应用程序,我试图通过jPlayer传输音频,jPlayer托管在S3上。 到目前为止,我上传文件或使用内置播放器播放音频文件,甚至使用S3上的歌曲初始化jPlayer都没有问题。 当我开始改变歌曲时会出现问题。

我像这样初始化jPlayer:

$('a.html5').click(function() { var url = $(this).attr('href'); $("#jquery_jplayer_1").jPlayer({ ready: function (event) { $(this).jPlayer("setMedia", { mp3: url }); }, swfPath: "javascripts", supplied: "mp3", wmode: "window" }); return false; }); 

其中mp3:url指向S3 URL(这一切都很好)。

这允许我从链接列表中选择一首歌曲,它加载并开始播放没有问题。

问题是,当我尝试更改歌曲时,我收到了一个access-control-allow-origin错误。 所以我尝试了以下内容:

 $('a.html5').click(function() { var url = $(this).attr('href'); $("#jquery_jplayer_1").jPlayer("setMedia", mp3: url).jPlayer("play"); return false; }); 

这仍然给我一个access-control-allow-origin错误。 我一直在靠墙砸几个小时试图解决这个问题。

所以基本上总结一下,我可以初始化jPlayer并播放一首歌很好,但是当我想改变一首歌时,access-control-allow-origin错误毁掉了我的一天。

有任何想法吗?

好吧,似乎唯一的问题是mp3周围缺少括号:jPlayer的url部分(“setMedia”….

所以应该是(...).jPlayer("setMedia", {mp3: url}).(...)

在搜索了很多之后,它也可能是解决方案之一。

 function歌曲(json1){ 
$( “#jquery_jplayer_1”)jPlayer( “破坏”)。 //这将破坏之前的jplayer内容然后如果再次调用此函数,它会将你的新音频歌曲添加到jplayer
var audio_url_inside = json1.audio_url;
$( '#jquery_jplayer_1')。jPlayer({
ready:function(event){
$(this).jPlayer(“setMedia”,{
MP3:audio_url_inside,
奥加:audio_url_inside
})jPlayer( “玩”)。 //尝试播放媒体
},
swfPath: “http://www.jplayer.org/2.1.0/js”
提供:“mp3,oga”
});
}

:希望它会有所帮助。