0

これは、個人的な使用のみを目的として設計されたプロジェクトです。

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 は、MP3 ファイルが Web からアクセスできないディレクトリ (別のドライブ) にあるため、MP3 ファイルの「プロキシ」として機能することを含め、すべての AJAX 要求を処理するために開発されました。ajax.php からの関連するコード スニペットを次に示します。

$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 アクセス可能なディレクトリに移動する以外に、他に何をすべきかわかりません (制御とリソースの理由から、これはやりたくありません)。何か助けはありますか?

4

1 に答える 1

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>

それはうまくいくはずです。

于 2012-09-04T03:37:46.930 に答える