Продолжительность WAV и MP3 файлов с PHP - PullRequest
0 голосов
/ 09 июля 2019

У меня есть функция для получения продолжительности .WAV и .MP3.Для .Wav он работает просто отлично: 06: 31

Но с .MP3 он ничего не возвращает.

Может кто-нибудь, пожалуйста, помогите мне настроить его:

function wavDur($file) {
    $fp = fopen($file, 'r');
    if (fread($fp,4) == 'RIFF') {
        fseek($fp, 20);
        $rawheader = fread($fp, 16);
        $header = unpack('vtype/vchannels/Vsamplerate/Vbytespersec/valignment/vbits',$rawheader);
        $pos = ftell($fp);
        while (fread($fp,4) != 'data' && !feof($fp)) {
            $pos++;
            fseek($fp,$pos);
        }
        $rawheader = fread($fp, 4);
        $data = unpack('Vdatasize',$rawheader);
        $sec = $data['datasize']/$header['bytespersec'];
        $minutes = intval(($sec / 60) % 60);
        $seconds = intval($sec % 60);
        return str_pad($minutes,2,'0', STR_PAD_LEFT).':'.str_pad($seconds,2,'0', STR_PAD_LEFT);
    }
}




if (preg_match('/[.](wav)|(WAV)|(mp3)|(MP3)$/', $file)) {
    $dur = wavDur($file);
} else {
    $dur = '';
}
...