Изменение песни на jPlayer, нажав на ссылку, размещенную на Amazon S3 - PullRequest
7 голосов
/ 21 ноября 2011

Привет всем и спасибо за любую помощь заранее.

У меня есть приложение ruby ​​on rails, в котором я пытаюсь транслировать аудио через jPlayer, который размещен на S3.До сих пор у меня не было проблем с загрузкой файлов или использованием встроенных в проигрыватель браузеров для воспроизведения аудиофайлов, или даже с помощью инициализации 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 указывает на URL S3 (все это прекрасно работает).

Это позволяет мне выбрать песню из списка ссылок, и она загружается и начинает играть без проблем.

Проблема в том, что, когда я пытаюсь изменить песни, я получаю доступ кОшибка управления разрешением источника.Поэтому я попытался сделать следующее:

$('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 и просто воспроизвести песню, но когда я хочу изменить песню, ошибки контроля доступа-разрешения-источника портят мой день.

Есть идеи?

Ответы [ 2 ]

8 голосов
/ 24 ноября 2011

Что ж, похоже, единственной проблемой было отсутствие скобок вокруг mp3: url части jPlayer ("setMedia" ....

, поэтому это должно было быть (...).jPlayer("setMedia", {mp3: url}).(...)

2 голосов
/ 25 августа 2012

После многократного поиска это тоже может быть одним из решений.

 function songs(json1) {<br/>
$("#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<br/>
        var audio_url_inside = json1.audio_url;<br/>
        $('#jquery_jplayer_1').jPlayer({<br/>
            ready:function (event) {<br/>
                  $(this).jPlayer("setMedia", {<br/>
                    mp3:audio_url_inside,<br/>
                    oga:audio_url_inside<br/>
                }).jPlayer("play");   //attemp to play media<br/>
            },<br/>
                  swfPath:"http://www.jplayer.org/2.1.0/js",<br/>
            supplied:"mp3, oga"<br/>
        });<br/>
    }<br/>

: надеюсь, это поможет.

...