Динамическое заполнение плейлиста JSON из PHP в jPlayer

У меня есть PHP, который создает массив JSON файлов mp3 в каталоге. Выходной массив JSON из PHP:

[{"title":"Kalimba","mp3":"/path/to/mydirectory/Kalimba.mp3"},{"title":"Maid with  the Flaxen Hair","mp3":"/path/to/mydirectory/Maid with the Flaxen Hair.mp3"},{"title":"Sleep Away","mp3":"/path/to/mydirectory/Sleep Away.mp3"}]

Хорошо, похоже, это то, чего ожидает JQuery.jPlayer.

Теперь в базовом файле jplayer.js у меня есть:

$(document).ready(function(){

new jPlayerPlaylist({
    jPlayer: "#jquery_jplayer_1",
    cssSelectorAncestor: "#jp_container_1"
}, [
    //I guess my JSON array should come here
    // but no idea on how I put it in...
], {
    swfPath: "../js",
    supplied: "mp3",
    wmode: "window"
});
});

Моя проблема в том, что я не могу поместить свой массив JSON в то место, где он должен быть (см. комментарии в коде js)

Любая помощь будет очень признательна! Простите мой английский, это не мой родной язык Заранее спасибо

РЕДАКТИРОВАТЬ И РЕШЕНО

Привет всем, Для тех, кто заинтересован, я нахожу решение: Мой файл JS:

$(document).ready(function(){
    var cssSelector = {
        jPlayer: "#jquery_jplayer_1", 
        cssSelectorAncestor: "#jp_container_1"
    };
    var playlist = []; // Empty playlist
    var options = {
        swfPath: "./js", 
        supplied: "mp3"
    };
    var myPlaylist = new jPlayerPlaylist(cssSelector, playlist, options);
    $.getJSON("../PHP/radio.php",function(data){  // get the JSON array produced by my PHP
        $.each(data,function(index,value){
            myPlaylist.add(value); // add each element in data in myPlaylist
        })
    }); 
});

person phron    schedule 05.12.2011    source источник
comment
вы можете ответить на свой вопрос и решить его, поэтому вам не нужно отвечать в поле вопроса   -  person samura    schedule 08.12.2011
comment
Не волнуйтесь, если вы сами отвечаете на свои вопросы, это просто означает, что вы на самом деле выходите и прилагаете усилия, чтобы учиться. Так что никакого флейма от меня. Однако, к вашему сведению, люди возьмутся за ваше дело, если вы не сделаете что-то, как они должны, так что… имейте это в виду. Тем не менее, у меня все еще есть проблемы с тем, чтобы заставить это работать.. Я не понимаю, почему это не работает, это выглядит правильно. Думаю, мне нужно еще немного отладить. Спасибо хоть! Оцените продолжение.   -  person John Drefahl    schedule 27.12.2011
comment
Я пытаюсь использовать ваше решение, но у меня есть два вопроса: что возвращает ваш radio.php (формат) и если вы не получаете сообщение об ошибке setMedia()   -  person AFetter    schedule 22.05.2012
comment
Не могли бы вы опубликовать здесь содержимое файла radio.php, чтобы воспользоваться вашим ответом?   -  person Black Block    schedule 20.07.2015


Ответы (2)


Почему бы вам просто не добавить javascript:

var playlist = [{"title":"Kalimba","mp3":"/path/to/mydirectory/Kalimba.mp3"},{"title":"Maid with  the Flaxen Hair","mp3":"/path/to/mydirectory/Maid with the Flaxen Hair.mp3"},{"title":"Sleep Away","mp3":"/path/to/mydirectory/Sleep Away.mp3"}];

$(document).ready(function(){

  new jPlayerPlaylist({
    jPlayer: "#jquery_jplayer_1",
    cssSelectorAncestor: "#jp_container_1"
  },
  playlist,
  {
    swfPath: "../js",
    supplied: "mp3",
    wmode: "window"
  });
});

Вы даже можете использовать PHP для создания переменной playlist.

person samura    schedule 05.12.2011
comment
Привет, просто потому, что это не работает ... Я думаю, это потому, что в этом случае (и в случае массива JSON это массив объектов, и кажется, что это не то, что ожидается JPlayer. Я попытался преобразовать его в массив строк, но он тоже не работает... - person phron; 06.12.2011
comment
Я думаю, что проблема, которую мы здесь пытаемся решить, заключается в том, как легко заставить JPlayer получить список воспроизведения через JSON. Не PHP создал JSON, который, возможно, придется переназначить, а просто внедрил конструктор jPlayerPlaylist() и заставил его работать с простым списком воспроизведения JSON. - person John Drefahl; 27.12.2011

изменить свой

 myPlaylist.add(value);

myPlaylist.add({title:$(this).attr("title"),mp3:$(this).attr("mp3")});

перед этим проверьте, правильно ли вы передали значения, используя alert() или console.log()

person navinspm    schedule 14.07.2014