大家好,感谢您提前提供任何帮助。
我在rails应用程序上有一个ruby,我试图通过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错误毁掉了我的一天。
有什么想法吗?
答案 0 :(得分:8)
看来唯一的问题是mp3周围缺少括号:jPlayer的url部分(“setMedia”....
所以应该是(...).jPlayer("setMedia", {mp3: url}).(...)
答案 1 :(得分:2)
经过大量搜索后,它也可能是其中一种解决方案。
function songs(json1) {
$("#jquery_jplayer_1").jPlayer("destroy"); //this will destroy previous jplayer content and then if you again call this function it will add the new url of you audio song to the jplayer
var audio_url_inside = json1.audio_url;
$('#jquery_jplayer_1').jPlayer({
ready:function (event) {
$(this).jPlayer("setMedia", {
mp3:audio_url_inside,
oga:audio_url_inside
}).jPlayer("play"); //attemp to play media
},
swfPath:"http://www.jplayer.org/2.1.0/js",
supplied:"mp3, oga"
});
}
:希望它会有所帮助。