2011-11-21 9 views
7

こんにちは皆さん、ありがとうございました。Amazon S3でホストされているリンクをクリックしてjPlayerの曲を変更する

私は、S3でホストされているjPlayerを通じてオーディオをストリーミングしようとしている、RubyアプリケーションにRubyを使用しています。これまでのところ、ファイルをアップロードしたり、プレーヤーに組み込まれたブラウザを使用してオーディオファイルを再生したり、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:S3 URLへの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のURL部分(「setMedia」....

をので、それは多くのことを検索した後(...).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( "destroy")です。 –

関連する問題