1

我有以下 Javascript 用于使用 jwplayer 将音乐文件作为播放列表播放

function playAllAudio() {
var audioDiv = "<div id='audioplayer'></div>";
    //Get ids from selected files
var sData = $('input', oTable.fnGetNodes()).serialize();

$.post("mediaStream.do", {OID : sData},function(data) {     
    jwplayer('audioplayer').setup({
        'controlbar': 'bottom',
        'width': '470',
        'height': '24',
        //'playlist': [{file:'mp3:audio/audioMotion'},{file:'mp3:audio/audioTangled'},{file:'mp3:audio/audioSunHands'}],
         'playlist': data,
        'provider': 'rtmp',
        'streamer': 'rtmp://XXXXXXX.cloudfront.net:1935/cfx/st',
        'modes': [
            {type: 'flash', src: 'https://YYYYYYYYY.cloudfront.net/player.swf'}
        ]
    });

});
}

数据作为 JSON 字符串动态创建,其中的值是为 jwplayer 格式化的歌曲文件名

var data = "[{file:'mp3:audio/audioMotion'},{file:'mp3:audio/audioTangled'}]";

但是,当我使用变量“数据”时,jwplayer 不起作用。我如何使它与从服务器传递到 javascript 的数据一起工作?

4

2 回答 2

3

动态创建的数据是一个JSON字符串,但是 jwplayer 的playlist配置应该是一个数组,你必须先将字符串覆盖到一个数组中:

var data = "[{file:'mp3:audio/audioMotion'},{file:'mp3:audio/audioTangled'}]";
data = JSON.parse(data); // with out IE8-

JSON在 IE8 中不支持,您可以使用 Douglas Crockford 的json2来修复它。

于 2012-06-30T03:47:11.970 回答
0

您可以像这样做一样传递它,作为来自 mediaStream.do 调用的响应。

你确定json有效吗?您是否尝试过使用http://jsonlint.com/验证响应?

于 2012-06-30T03:45:24.750 回答