这是专为个人使用而设计的项目。
我将JWPlayer安装到我的本地开发服务器上。这是我使用过的功能播放列表并经过验证的作品:
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>oTunes Web App - Playlist</title>
<item>
<title>My Baby Loves Me by Martina McBride on Greatest Hits</title>
<media:content url="07TheGift.mp3" duration="156" />
</item>
</channel>
</rss>
此播放列表不起作用:
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>oTunes Web App - Playlist</title>
<item>
<title>My Baby Loves Me by Martina McBride on Greatest Hits</title>
<media:content url="ajax.php?ajax=getMP3Version&track=38809" duration="156" />
</item>
</channel>
</rss>
ajax.php已被开发用于处理所有AJAX请求,包括充当MP3文件的“代理”,因为MP3文件位于非Web访问目录(不同的驱动器)中。这是来自ajax.php的相关代码snipplet:
$initial = $_GET['initial'];
session_start();
echo $tracks->generatePlaylistString($_SESSION['last_results'], $initial);
这是来自$ tracks类的相关代码:
function generatePlaylistString($data, $initial) {
$playlistData = $data;
$firstToPlay = $initial;
$round = 1;
$addToPlaylist = false;
$playlistString = '<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>oTunes Web App - Playlist</title>
';
foreach($playlistData AS $item) {
if ($item['TrackUniqueID'] == $firstToPlay) {
$addToPlaylist = true;
}
if ($addToPlaylist) {
$durationArray = explode(":", $item['TrackTotalDuration']);
$playlistString .= ' <item>
<title>'.$item['TrackTitle'].' by '.$item['TrackArtist'].' on '.$item['TrackAlbum'].'</title>
<media:content url="ajax.php?ajax=getMP3Version&track='.$item['TrackUniqueID'].'" duration="'.(($durationArray[0]*60)+$durationArray[1]).'" />
</item>
';
}
}
$playlistString .= ' </channel>
</rss>';
return $playlistString;
}
播放列表格式正确,因为我通过调用静态文件(见上文)替换了对代理PHP文件的调用,并且正确播放了歌曲。我在浏览器中转到PHP页面,系统会提示我播放该文件(并且它也能正常播放)。我使用Firebug确认正在进行正确的呼叫和响应,而且它们都是。但是,当我将代理PHP页面的调用放入播放列表时,我收到以下错误:
无法加载播放列表:播放列表文件未包含有效内容 播放列表
我不知道还能做什么,除了将所有MP3文件移动到一个可访问web的目录(出于控制和资源原因,我不想这样做)。有什么帮助吗?
答案 0 :(得分:2)
变化:
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>oTunes Web App - Playlist</title>
<item>
<title>My Baby Loves Me by Martina McBride on Greatest Hits</title>
<media:content url="ajax.php?ajax=getMP3Version&track=38809" duration="156" />
</item>
</channel>
</rss>
要:
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:jwplayer="http://developer.longtailvideo.com/trac/wiki/FlashFormats">
<channel>
<title>oTunes Web App - Playlist</title>
<item>
<title>My Baby Loves Me by Martina McBride on Greatest Hits</title>
<media:content url="ajax.php?ajax=getMP3Version&track=38809" duration="156" />
<jwplayer:provider>sound</jwplayer:provider>
</item>
</channel>
</rss>
这应该有效。