Подскажите каким образом из свойства файла *.wav (как это делает винда) с помощью php узнать длину трека?
флоппик а можно как то направить в более нужное русло - не совсем понял как использовать OpenAL Audio Bindings
теоритические рассуждения: ваще wav - "чистый" формат.. то-есть длинна одной секунды звука при одной частоте и битовой размерности, за минусом заголовка (в котором как раз можно прочитать частоты/биты) всегда одинакова.. погугли по: описание wav формата.. если голова есть, то думаю всё решается очень просто без использования сторонних либ
QQQ и как же я прочитаю заголовок в бинарном файле? я думал считать из размера файла - но не факт что битрейт всегда один и тот же - файлов десятки тысяч... если кто уже привязывал библиотеки на эту тему - прошу поделитесь...
эх, где ж мои 19 лет? PHP: <?php $file = 'sound.wav'; $fp = fopen($file, 'rb'); fseek($fp, 28); $rawheader = fread($fp, 4); $header = unpack('Vbytespersec',$rawheader); echo 'Файл '.$file.' продолжительностью '.round((filesize($file)-44)/$header['bytespersec'],2).' сек.'; ?>
А попробуй так: PHP: <?php $f = fopen('test.wav', 'r'); fseek($f, 16); list(, $chunk_size) = unpack('V', fread($f, 4)); fseek($f, 28); list(, $bps) = unpack('V', fread($f, 4)); fseek($f, 24 + $chunk_size); list(, $data_size) = unpack('V', fread($f, 4)); print $data_size / $bps;
Luge то-то я думаю что за MPEG Layer 3 в свойствах пишет - но эту х.. пропустил мимо глаз и ушей - ну чтож, спасиб всем, пришлось считать от размера файла и надеяться что битрейт не смениться (и никто не говорил что я ас в программировании - дурак дураком)