2011-11-21 19 views
7

Ciao a tutti e grazie per qualsiasi aiuto in anticipo.Cambiare i brani su jPlayer facendo clic su un collegamento, ospitato su Amazon S3

Ho un'applicazione ruby ​​on rails in cui sto tentando di eseguire lo streaming audio tramite jPlayer, che è ospitato su S3. Finora non ho problemi a caricare file o utilizzare i browser integrati nel lettore per riprodurre file audio, o anche a jPlayer per inizializzarsi con un brano su S3. Il problema arriva quando inizio a cambiare canzoni.

inizializzo JPlayer come questo:

$('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; 
}); 

dove gli mp3: URL punta a S3 URL (tutto questo funziona bene).

Questo mi consente di selezionare un brano da un elenco di collegamenti e si carica e inizia a riprodurre senza problemi.

Il problema è che quando provo a cambiare le canzoni, ottengo un errore di accesso-controllo-permesso-origine. Così ho provato la seguente:

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

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

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

    return false; 
    }); 

Questo mi dà ancora un Access-control-allow-origine errore. Ho battuto la testa contro il muro per ore cercando di capirlo e niente.

Quindi in sostanza un riassunto è che posso inizializzare jPlayer e riprodurre una canzone bene, ma quando voglio cambiare una canzone, gli errori di accesso-controllo-permetti-origine rovinano la mia giornata.

Qualche idea?

risposta

8

Beh sembra che l'unico problema era la mancanza di parentesi in tutto il mp3: url parte JPlayer ("setMedia" ....

così avrebbe dovuto essere (...).jPlayer("setMedia", {mp3: url}).(...)

+0

Grazie per l'esempio di riproduzione di un file facendo clic su un link.! Ho trovato molti esempi di caricamento del file su documento pronto, ma questo è il primo sul caricamento di un file diverso con un clic. –

2

Dopo aver cercato un sacco potrebbe essere una delle soluzioni troppo

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

:. Spero che vi aiuterà

+0

La migliore soluzione di gran lunga. Trick è il .jPlayer ("destroy"); –

Problemi correlati