Shuffle playlist con PHP e MediaPlayer
- Maggio 19, 2010
- by
- Donatantonio
In questo articolo vedremo come realizzare una pagina web che permetta l’ascolto, tramite il plugin di Windows Media Player, di una playlist in formato m3u in modalità shuffle cioè in ordine casuale di brani.
Più precisamente lo script php realizzerà una playlist diversa per ogni chiamata della pagina, in modo tale che ogni utente connesso ascolterà la stessa playlist ma in un ordine differente di esecuzione. Potremo, con le dovute differenze, creare una sorta di webradio.
Innanzittutto è necessario creare un file con estensione .m3u che conterrà semplicemente la lista degli url degli mp3 da eseguire.
Ad esempio l’ipotetico file playlist.m3u:
Tale file sarà locato nel nostro spazio web ad esempio nella cartella /stream.
Andiamo ora a vedere il codice php che implementerà la funzione shuffle:
<?php // url del file m3u originale $file_playlist = "/stream/playlist.m3u"; // url del file m3u casuale, utilizzo valore random per differenziarlo $file_playlist_shuffle = "/stream/playlist_".rand (10,9999).".m3u"; // scarico la playlist in un array, ogni elemento è un url $lines = file($file_playlist); // ordino in modo casuale gli elementi dell'array shuffle($lines); // realizzo il file m3u con la playlist casuale $var=fopen($file_playlist_shuffle,"w"); for($i=0; $i<count($lines); $i++){ fwrite($var, $lines[$i]); } fclose($var); ?>
Lo script appena visto verrà inserito all’interno della nostra pagina web prima dell’aperura del tag html. Una volta conslusa l’esecuzione del codice php, avremo nella nostra cartella /stream il file originale “playlist.m3u” e un file tipo “playlist_153.m3u” che conterrà la playlist in un ordine diverso. (il numero 153 è solo di esempio)
Il player audio andrà quindi a leggere il flusso audio dal secondo file appena realizzato.
Vediamo quindi il codice completo player.php:
<?php // -- INIZIO configurazione script $url_sito = "http://www.donatantonio.it/"; $file_playlist = "stream/playlist.m3u"; $file_playlist_shuffle = "stream/playlist_".rand (10,9999).".m3u"; // -- FINE configurazione $lines = file($file_playlist); shuffle($lines); $var=fopen($file_playlist_shuffle,"w"); for($i=0; $i<count($lines); $i++){ fwrite($var, $lines[$i]); } fclose($var); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="author" content="Fabio Donatantonio" /> <title>Media Player - Shuffle Mode</title> </head> <body> <h1>Stai ascoltando la playlist</h1> <!-- Codice lettore Media Player --> <object id="mediaplayer" classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" width="300" height="300" codebase = "http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"> <param name="url" value="<?php echo $url_sito.$file_playlist_shuffle;?>" /> <param name="autostart" value="1" /> <param name="showcontrols" value="1" /> <param name="stretchtofit" value="0" /> <param name="enablecontextmenu" value="0" /> <param name="ShowStatusBar" value="1" /> <param name="src" value="<?php echo $url_sito.$file_playlist_shuffle;?>" /> <embed id="mediaplayer" type="application/x-mplayer2" width="300" height="300" src="<?php echo $url_sito.$file_playlist_shuffle;?>" showstatusbar="1" enablecontextmenu="0" stretchtofit="0" showcontrols="1" autostart="1" url="<?php echo $url_sito.$file_playlist_shuffle;?>"> </embed></object> <!-- Fine codice lettore Media Player --> </body> </html>
Una volta personalizzato e caricato il file sul nostro spazio web e richiamata la pagina dal browser ascolteremo la playlist in ordine casuale.
Clicca qui per scaricare lo script completo.
Alcune osservazioni e idee in conclusione:
1 – La pagina richiede Media Player come player audio
2 – La cartella contenente le playlist andrebbe “svuotata” regolarmente in virtù delle connessioni alla pagina. Ciò magari è implementabile sempre con php.
3 – Con un pò di pazienza e fantasia si potrebbe utilizzare l’array degli url mp3 per realizzare un player audio implementato in javascript.
1 Comment
Enrico81
21st Mag 2010 - 11:51Grazie mille!
Era proprio quello di cui avevo bisogno, ora tocca lavorare per cancellare le playlist obsolete.