我正在使用自定义投放代码通过网络传输MP3,而不使用AVAudioPlayer
等API AudioFileStreamOpen
(仅适用于网址)。
有没有办法估计流的长度?我知道我可以使用以下方式获得'过去'的财产:
if(AudioQueueGetCurrentTime(queue.audioQueue, NULL, &t, &b) < 0)
return 0;
return t.mSampleTime / dataFormat.mSampleRate;
但是创建进度条的总持续时间呢?这可能吗?
P.S。澄清 - 我知道MP3文件的实际大小,不知道是否可以使用...我甚至会解决只给我一个进度条的解决方案,而不是实际的播放时间/持续时间。 / p>
答案 0 :(得分:0)
如果您知道MP3文件的总大小,则可以计算每秒的位数,从而计算流的持续时间。如果它是VBR,你可能需要平均几个MPEG帧。对于CBR,您可以简单地使用一个数据包的比特率。