У несжатого PCM фиксированная скорость данных, когда известны частота дискретизации, бит на семпл и число каналов. AudioSize считает целые кадры: физический payload не может содержать часть одного чередующегося кадра. Сначала длительность переводится в кадры, затем считаются байты.
Найдите размер кадра
Размер кадра равен числу каналов, умноженному на бит на семпл и делённому на восемь. Стерео PCM 24 бит использует 2×24÷8=6 байт на кадр. Это ширина хранения, а не оценка аналогового разрешения, преобразователя, шума или качества.
Рассчитайте байты в секунду
Умножьте частоту на размер кадра. При 48000 Гц, 24 бит и стерео получается 48000×6=288000 байт в секунду, или 2304000 бит/с. Для PCM результат детерминирован и не требует файла, микрофона, кодера или сети.
Уложите целые кадры
Для расчёта размера AudioSize округляет кадры вверх, чтобы покрыть заданное время. Для расчёта времени по хранилищу кадры округляются вниз, чтобы не превысить ёмкость. Эффективная длительность и неиспользованные байты показываются, а не скрываются удобным округлением.
Соблюдайте границу WAV
WAV или BWF содержит chunks помимо семплов, а программы могут добавлять метаданные и padding. Поэтому точное число AudioSize называется PCM payload. Проверяйте в рекордере или программе накладные данные, лимит файла, автоматическое деление, резерв места и устойчивую скорость носителя.