iPhone — получить продолжительность аудиофайла линейного PCM

StackOverflow https://stackoverflow.com/questions/1649491

  •  22-07-2019
  •  | 
  •  

Вопрос

В моем приложении есть линейный файл PCM (.wav), и я хотел бы получить его продолжительность программно.Я смог найти следующее, используя AudioStreamBasicDescription, но не смог понять, как получить продолжительность в секундах.

mFormatID
mSampleRate
mChannelsPerFrame
mBytesPerPacket
mFramesPerPacket
mBytesPerFrame
mBitsPerChannel

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

Спасибо.

Это было полезно?

Решение

Вы можете создать экземпляр AVAudioPlayer с вашим файлом.AVAudioPlayer имеет свойство продолжительности.

Другие советы

Лучше всего использовать свойство AudioFile kAudioFilePropertyEstimatedDuration, однако, если вам нужны математические вычисления для PCM:продолжительность = totalNumPackets * ASBD.mFramesPerPacket / ASBD.mSampleRate

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top