Fabio Donatantonio

Shuffle playlist con PHP e MediaPlayer  

realizzato da , il 19 mag. 2010, categoria PHP

PHP

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:

http://www.miosito.com/musica/canzone_0.mp3

http://www.miosito.com/musica/canzone_1.mp3

http://www.miosito.com/musica/canzone_2.mp3

http://www.miosito.com/musica/canzone_3.mp3

http://www.miosito.com/musica/canzone_4.mp3

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.

Nessun articolo correlato.


Invia questo articolo Invia ad un amico (Send this to a friend)
 Stampa questo articolo (Print now)  Stampa questo articolo (Print now)
:, , ,
Ti � piaciuto? Ti è piaciuto quest'articolo, guida o riflessione? Scoprine tanti altri nel menu articoli.

Torna sopra ↑

Spazio Pubblicitario

1 Commenti per questo articolo

  • Enrico81

    Grazie mille!
    Era proprio quello di cui avevo bisogno, ora tocca lavorare per cancellare le playlist obsolete.

Commenta l'articolo - Ti risponderò in privato

Compila il modulo anti-spam sottostante

 

Fabio Donatantonio - Salerno - Città di Castello (PG) - fabio@donatantonio.net
Torna sopra ↑