Fabio Donatantonio

Resta connesso

Software Developer / Adjunct Professor

Shuffle playlist con PHP e MediaPlayer

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.

Fabio Donatantonio

Fabio Donatantonio. Analista e sviluppatore full-stack di applicazioni web in linguaggio PHP. Professore a Contratto per le cattedre di Fondamenti di Informatica e Archivistica Digitale presso Università degli Studi eCampus. Dal 2008 curatore del sito www.donatantonio.net, da sempre appassionato di programmazione, mare, sigari e... musica.

Ti potrebbe piacere anche

1 Comment

  1. Enrico81

    21st Mag 2010 - 11:51

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

Leave a reply

Your email address will not be published. Required fields are marked *

 

Didattica

Università degli Studi eCampus
Data Evento
05/07/2019
11:30
Esame Archivistica Digitale e Informatica per le Scienze Umane - Cds Filologia Moderna - Lettere - Novedrate(CO)
05/07/2019
11:30
Esame Introduzione all'Archivistica Digitale e all'Informatica per le Scienze Umane - Cds Letteratura, Arte, Musica e Spettacolo - Lettere - Novedrate(CO)
05/07/2019
11:30
Esame Abilità Informatiche e Telematiche - Cds Design e Discipline della Moda - Lettere - Novedrate(CO)
12/07/2019
11:30
Esame Introduzione all'Archivistica Digitale e all'Informatica per le Scienze Umane - Cds Letteratura, Arte, Musica e Spettacolo - Lettere - Roma
12/07/2019
11:30
Esame Archivistica Digitale e Informatica per le Scienze Umane - Cds Filologia Moderna - Lettere - Roma
12/07/2019
11:30
Esame Abilità Informatiche e Telematiche - Cds Design e Discipline della Moda - Lettere - Roma
Risorse
Guida HTML/CSS per principianti (link)
Introduzione agli ipertesti (link)
Esercizi guidati in Java (link)
Intelligenza artificiale (link)
Libri
Fondamenti di Informatica (2011) (link)
Informatica per le Scienze Umane (2011) (link)
Fondamenti di Informatica (2014) (link)
Pagina Docente
uniecampus.it - Scheda Docente (link)
Contatti
fabio.donatantonio[at]uniecampus.it

JWhisper, sviluppato presso il Dipartimento di Informatica Applicata dell'Università degli Studi di Salerno:

Stay Connected

Twitter

Le mie foto

Foto di Fabio Donatantonio
×