> und die Peaks bestimmen
Was ist jetzt damit gemeint ?
Im Prinzip lassen sich alle Dateien mit fopen() einlesen, und wenn der Aufbau der Headerinformation bekannt ist, kann man mit unpack() die relevanten Informationen auswerten.
einfaches Beispiel mit für WAV-Dateien:
function _parsewav ( $file ) {
$fp = fopen ( $file, 'rb' );
$temp = fread($fp, 40);
fclose($fp);
if ( substr($temp,0,4) == 'RIFF' ) {
// dateigröße in byte
$bytes = unpack( 'V' , substr($temp, 4, 4) );
// format
$form = unpack( 'v' , substr($temp, 20, 2) );
// anzahl kanäle /C
$ch = unpack( 'c' , substr($temp, 22, 2) );
// samplerate /R
$samp = unpack( 'V' , substr($temp, 24, 4) );
$samp = $samp[1];
// bytes pro sekunde
$bps = unpack( 'V' , substr($temp, 28, 4) );
// bytes pro sample
$bpsa = unpack( 'v' , substr($temp, 32, 2) );
switch ( $bpsa[1] ) {
case 1: $byprosamp = '8 mono'; break;
case 2: $byprosamp = '8 stereo'; break;
case 3: $byprosamp = '16 mono'; break;
case 4: $byprosamp = '16 stereo'; break;
}
// bits pro sample /B
$bips = unpack( 'v' , substr($temp, 34, 2) );
return Array( 'C' => $ch[1], 'R' => $samp, 'B' => $bips[1] , 'BYT' => $bytes[1], 'F' => $form[1] );
}
}