Не обязательно. Типичные файлы WAV будут иметь блок волнового формата (WAVEFORMATEX
, если вы кодируете в Windows), который содержит частоту дискретизации и количество битов на выборку. Большинство файлов WAV, с которыми вы, как правило, сталкиваетесь, находятся в формате PCM, в котором вы знаете, что всегда имеется одинаковое количество выборок в секунду и битов на выборку, поэтому из размера файла и этих значений вы можете определить продолжительность точно.
Существуют и другие типы WAV-файлов, которые могут быть сжаты (хотя они гораздо реже), и для них вам нужно использовать поле «среднее число байт / сек» в заголовке WAVE, чтобы определить длину.
Если вы используете AIFF (в основном используется в macs), тогда в заголовке есть похожих элементов данных .
Получить длину из файла MP3 сложнее - некоторые предложения есть в этот другой вопрос