7

こんにちは、事前に助けてくれてありがとう。

S3でホストされているjPlayerを介してオーディオをストリーミングしようとしているRuby on Railsアプリケーションがあります。これまでのところ、ファイルをアップロードしたり、プレーヤーに組み込まれているブラウザを使用してオーディオ ファイルを再生したり、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 エラーが私の一日を台無しにします。

何か案は?

4

2 に答える 2

8

さて、唯一の問題はmp3の周りの括弧の欠如であったようです:jPlayer("setMedia"...のurl部分。

だからそれはすべきだった(...).jPlayer("setMedia", {mp3: url}).(...)

于 2011-11-23T21:17:46.703 に答える
2

たくさん検索した後、それも解決策の1つになる可能性があります。

function songs(json1){ 
$( "#jquery_jplayer_1")。jPlayer( "destroy"); //これにより、以前の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"
});

:お役に立てば幸いです。

于 2012-08-25T04:47:31.870 に答える