2010-03-25 35 views
0

我使用自定義的餵養碼流在網絡中的MP3流的估計持續時間,而不是AVAudioPlayer(只對URL的作品)使用API​​,如AudioFileStreamOpen
有沒有什麼辦法來估算流的長度?我知道我可以使用'elapsed'屬性:找出使用的Core Audio

if(AudioQueueGetCurrentTime(queue.audioQueue, NULL, &t, &b) < 0) 
     return 0; 

    return t.mSampleTime/dataFormat.mSampleRate; 

但是,創建進度條的總持續時間呢?那可能嗎?

P.S.澄清 - 我知道MP3文件的實際大小,不知道是否可以使用...我甚至會解決,只是給我一個進度條,而不是實際的播放時間/持續時間。

+0

你是如何獲取音頻數據?使用NSURLConnection? – 2010-03-25 17:30:18

+0

不,通過自定義NSStream – reflog 2010-03-25 21:39:32

回答

0

如果知道MP3文件的總大小,則可以計算每秒的位數,並因此計算流的持續時間。如果是VBR,則可能需要平均多個MPEG幀。對於CBR,您可以簡單地使用一個數據包的比特率。

+0

是,這是我去的解決方案。 – reflog 2010-03-26 11:48:17

相關問題