我有以下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'}]";
然而,当我使用变量'data'时,jwplayer不起作用。如何使用从服务器传递到javascript的数据?
答案 0 :(得分:3)
动态创建的数据是JSON字符串,但jwplayer的playlist
配置应该是一个数组,您必须首先将字符串覆盖到数组:
var data = "[{file:'mp3:audio/audioMotion'},{file:'mp3:audio/audioTangled'}]";
data = JSON.parse(data); // with out IE8-
但是IE8中不支持JSON
,你可以使用Douglas Crockford的json2来修复它。
答案 1 :(得分:0)
您可以像播放一样来传递它,作为来自mediaStream.do调用的响应。
你确定json有效吗?您是否尝试使用http://jsonlint.com/验证回复?