2011-11-21 38 views
7

您好所有和感谢提前任何帮助。更改歌曲通过点击一个链接,托管在亚马逊S3

我在其中,我试图通过jPlayer,这是在S3托管流音频Rails应用程序的红宝石。到目前为止,我没有问题,上传文件或者使用内置的播放器浏览器中播放音频文件,甚至让jPlayer有一首歌是对S3进行初始化。当我改变歌曲时,问题就出现了。

我初始化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(这一切工作只是罚款)。

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

的问题是,当我尝试改变的歌曲,我得到一个访问控制允许来源的错误。所以我尝试了以下内容:

$('a.html5').click(function() { 

    var url = $(this).attr('href'); 

    $("#jquery_jplayer_1").jPlayer("setMedia", mp3: url).jPlayer("play"); 

    return false; 
    }); 

这仍然给我一个访问控制允许来源错误。试图解决这个问题并且一无所有,我一直在墙上敲打我的头几个小时。

所以基本上总结是,我可以初始化jPlayer和播放一首歌曲就好了,但是当我想去换一首歌,访问控制允许来源的错误毁了我的一天。

任何想法?

回答

8

那么它看来,唯一的问题是缺乏围绕MP3括号:jPlayer(“setMedia”的URL部分....

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

+0

感谢的通过单击链接上播放文件的例子!我发现了大量的文件加载样本准备就绪,但这是第一个加载不同文件的点击。 –

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"
});
}

:希望这将有助于

+0

最好的解决方案。窍门是.jPlayer(“摧毁”); –