使用Core Audio查找流的估计持续时间

时间:2010-03-25 17:22:51

标签: iphone streaming mp3 core-audio

我正在使用自定义投放代码通过网络传输MP3,而不使用AVAudioPlayer等API AudioFileStreamOpen(仅适用于网址)。 有没有办法估计流的长度?我知道我可以使用以下方式获得'过去'的财产:

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

    return t.mSampleTime / dataFormat.mSampleRate;

但是创建进度条的总持续时间呢?这可能吗?

P.S。澄清 - 我知道MP3文件的实际大小,不知道是否可以使用...我甚至会解决只给我一个进度条的解决方案,而不是实际的播放时间/持续时间。 / p>

1 个答案:

答案 0 :(得分:0)

如果您知道MP3文件的总大小,则可以计算每秒的位数,从而计算流的持续时间。如果它是VBR,你可能需要平均几个MPEG帧。对于CBR,您可以简单地使用一个数据包的比特率。