7

大家好,感谢您提前提供的任何帮助。

我有一个 ruby​​ on rails 应用程序,我正在尝试通过托管在 S3 上的 jPlayer 流式传输音频。到目前为止,我上传文件或使用内置播放器的浏览器播放音频文件,甚至让 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(这一切都很好)。

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

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

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

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

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

    return false;  
  });

这仍然给我一个访问控制允许来源错误。几个小时以来,我一直把头撞在墙上,试图弄清楚这一点,但一无所获。

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

有任何想法吗?

4

2 回答 2

8

好吧,似乎唯一的问题是 mp3: url part of jPlayer("setMedia"....

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

于 2011-11-23T21:17:46.703 回答
2

经过大量搜索后,它也可能是解决方案之一。

功能歌曲(json1){ 
$(“#jquery_jplayer_1”).jPlayer(“销毁”);//这将破坏以前的jplayer内容,然后如果你再次调用这个函数,它会将你的音频歌曲的新url添加到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播放媒体
},
swfPath:"http://www.jplayer.org/2.1.0/js",
提供:"mp3, oga"
});

:Hope it will help.

于 2012-08-25T04:47:31.870 回答