проблема в плейлисте, когда мы выбираем разные песни - PullRequest
0 голосов
/ 13 июля 2009

На самом деле на моем веб-сайте www.musicking.in, когда пользователь выбирает песни, откроется одно окно проигрывателя, в котором появится доступ к списку воспроизведения соответствующих выбранных песен xml, и проигрыватель будет воспроизводить эти песни.

на самом деле работает нормально. но иногда проблема заключается в том, что так много пользователей получают доступ к плееру, который не воспроизводит выбранные песни, либо те, которые он воспроизводил ранее, либо ничего.

пожалуйста, помогите мне.

{код моего игрока}

<?php
if(isset($_POST["song"])&& $_POST['song'] != "") 
    {
        $song = $_POST["song"];
    }
    else {$song=array();} 

$dom = new DOMDocument("1.0");
// display document in browser as plain text 
// for readability purposes

// create root element
$root = $dom->createElement("playlist");
$dom->appendChild($root);
$root->setAttribute('version', "1");
$root->setAttribute('xmlns', "http://xspf.org/ns/0/");
$rootnext = $dom->createElement("trackList");
$root->appendChild($rootnext);
foreach ($song as $counter) {
    $tokens = ",";
    $tokenized = strtok($counter, $tokens);
// create child element

$song = $dom->createElement("track");
$rootnext->appendChild($song);
$song1 = $dom->createElement("creator");
$song->appendChild($song1);
$text = $dom->createTextNode("www.musicking.in");
$song1->appendChild($text); 
$song1 = $dom->createElement("title");
$song->appendChild($song1);
// create text node
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 
$tokenized = strtok($tokens);
$song1 = $dom->createElement("location");
$song->appendChild($song1);
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 

}
// save 
$dom->save("playlist.xml");
?>
<object data="musicplayer.swf?autostart=true&playlist=playlist.xml" type="application/x-shockwave-flash" width="400" height="300"><param name="movie" value="musicplayer.swf?autostart=true&playlist=playlist.xml"/></object>




{sample playlist.xml}

<?xml version="1.0"?>
<playlist xmlns="http://xspf.org/ns/0/" version="1"><trackList><track><creator>www.musicking.in</creator><title>Ey Yavo </title><location>/telugusongs/prayanam/Ey Yavo.mp3</location></track><track><creator>www.musicking.in</creator><title>Meghamaa </title><location>/telugusongs/prayanam/Meghamaa.mp3</location></track><track><creator>www.musicking.in</creator><title>Nuvvu Entha </title><location>/telugusongs/prayanam/Nuvvu Entha.mp3</location></track></trackList></playlist>

Ответы [ 2 ]

2 голосов
/ 13 июля 2009

похоже, что вы всегда используете файл playlist.xml, и поэтому, если есть 10 000 посетителей, один файл перезаписывается 10 000 раз. Обычно это не проблема, но интернет работает медленно, и поэтому, если кто-то нажимает на ваш сайт, генерируется XML, и загружается SWF, который затем использует XML. Это приводит к задержкам, и это может привести к проблемам, если один щелкнет и до того, как его игрок загрузит другой, создаст XML. Я полагаю, вы используете переменную имя файла (может быть случайным) Вам, возможно, придется очищать старые файлы раз за разом

0 голосов
/ 13 июля 2009

Вот быстрое решение, но вам действительно нужно обдумать это.

Оставьте только это в этом файле:

if(isset($_POST["song"])&& $_POST['song'] != "") 
    {
        $song = $_POST["song"];
    }
    else {$song=array();} 
<object data="musicplayer.swf?autostart=true&playlist=playlist.php?song=<?=$song; ?>"      type="application/x-shockwave-flash" width="400" height="300"><param name="movie"   value="musicplayer.swf?autostart=true&playlist=playlist.php?song=<?=$song; ?>"/></object>

Затем создайте файл playlist.php со всеми материалами для генерации:

if(isset($_GET["song"])&& $_GET['song'] != "") 
    {
        $song = $_GET["song"];
    }
    else {$song=array();}

....old generation code....
// Instead of saving it now, you just echo it. 
echo $dom->saveXML();

Это просто очень быстрое исправление, я не могу гарантировать, что оно будет работать, поскольку это зависит от того, как ваш музыкальный проигрыватель читает файлы. Но это путь, которым вы хотите идти. Вы хотите сгенерировать файл списка воспроизведения на основе параметра песни и передать его в браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...