Ho creato uno script che emette al volo una clip di 30 secondi di un file MP3. Se stai cercando di salvare il file, una delle altre opzioni che usa una classe/libreria sarà probabilmente la migliore. Ma se vuoi solo giocare/scaricare l'anteprima, al volo potrebbe essere meglio. Ti farà sicuramente risparmiare spazio sul disco rigido.
Verificare a http://www.stephenwalcher.com/2013/06/17/how-to-extract-and-play-part-of-an-mp3-in-php/.
Ecco il codice, ma una spiegazione più approfondita può essere trovata sul mio blog.
$getID3 = new getID3();
$id3_info = $getID3->analyze($filename);
list($t_min, $t_sec) = explode(':', $id3_info['playtime_string']);
$time = ($t_min * 60) + $t_sec;
$preview = $time/30; // Preview time of 30 seconds
$handle = fopen($filename, 'r');
$content = fread($handle, filesize($filename));
$length = strlen($content);
if (!$session->IsLoggedIn()) {
$length = round(strlen($content)/$preview);
$content = substr($content, $length/3 /* Start extraction ~10 seconds in */, $length);
}
header("Content-Type: {$id3_info['mime_type']}");
header("Content-Length: {$length}");
print $content;
fonte
2012-01-17 19:51:27
io don'y so se qualcosa è stato cambiato nel lib getID3 o 'un bug nel codice: non esiste un elemento di lunghezza nell'array id3_info. Dovrebbe essere playtime_string. – latata
Il collegamento è interrotto a proposito. –
risolto il collegamento. Dovrebbe essere buono per andare ora. –