2011-11-21 9 views
7

Witam wszystkich i dziękuję za wszelką pomoc z góry.Zmiana utworów na jPlayer przez kliknięcie łącza, hostowane na Amazon S3

Mam aplikację ruby ​​on rails, w której próbuję przesyłać dźwięk przez jPlayer, który jest hostowany na S3. Do tej pory nie mam problemu z przesyłaniem plików lub używanie wbudowanych przeglądarek do odtwarzania plików audio, a nawet do uruchamiania jPlayera z piosenką na S3. Problem pojawia się, gdy dostaję się do zmieniających się piosenek.

zainicjować JPlayer tak:

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

gdzie mp3: punkty URL do adresu URL (S3 to wszystko działa dobrze).

To pozwala mi wybrać piosenkę z listy linków, a ładuje się i zaczyna grać bez problemu.

Problem polega na tym, że gdy próbuję zmienić utwory, pojawia się błąd kontroli dostępu. Tak próbowałem następujące:

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

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

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

    return false; 
    }); 

To wciąż daje mi kontroli dostępu-allow-origin błąd. Od wielu godzin walę głową w ścianę, próbując to rozgryźć i nic.

Podsumowując, mogę zainicjować jPlayer i dobrze się bawić, ale kiedy chcę zmienić utwór, błędy kontroli dostępu powodują zrujnowanie mojego dnia.

Wszelkie pomysły?

Odpowiedz

8

Więc wydaje się, że jedynym problemem był brak uchwytów na całym mp3: część url JPlayer („setMedia” ....

tak powinno być (...).jPlayer("setMedia", {mp3: url}).(...)

+0

Dzięki za przykład odtwarzania pliku klikając na link.! Znalazłem mnóstwo próbek ładowania pliku na gotowym dokumencie, ale jest to pierwsze na ładowanie innego pliku za pomocą kliknięcia. –

2

Po wyszukaniu dużo może to być jedno z rozwiązań zbyt

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

. Mam nadzieję, że to pomoże

+0

Najlepsze rozwiązanie zdecydowanie. Trick to .jPlayer ("zniszcz"); –