2009-10-30 46 views
0

我在我的應用程序中有一個線性PCM文件(.wav),我希望以編程方式獲取它的持續時間。我可以使用AudioStreamBasicDescription找到以下內容,但無法確定如何在幾秒鐘內獲得持續時間。iPhone - 獲得線性PCM音頻文件的持續時間

mFormatID 
mSampleRate 
mChannelsPerFrame 
mBytesPerPacket 
mFramesPerPacket 
mBytesPerFrame 
mBitsPerChannel 

有人可以告訴我如何獲得持續時間。

謝謝。

回答

2

你可以用你的文件創建一個AVAudioPlayer實例。 AVAudioPlayer具有持續時間屬性。

+0

什麼都沒有? – lostInTransit 2009-10-30 12:30:42

+0

嗯...你可以使用AudioFileGetProperty方法並檢查kAudioFilePropertyEstimatedDuration屬性的值。 – Morion 2009-10-30 12:41:35

+0

同意。對於PCM,獲取kAudioFilePropertyEstimatedDuration應該給你一個精確的持續時間,因爲它是恆定的比特率,因此可以從ASBD和採樣數量準確計算出來。 – invalidname 2009-10-30 14:45:52

1

使用的AudioFile kAudioFilePropertyEstimatedDuration屬性是最好的,但是如果你想爲PCM數學:持續時間= totalNumPackets * ASBD.mFramesPerPacket/ASBD.mSampleRate使用音頻流

相關問題