【问题标题】:Finding out estimated duration of a stream using Core Audio使用 Core Audio 找出流的估计持续时间
【发布时间】:2010-03-25 17:22:50
【问题描述】:

我正在使用自定义馈送代码通过网络流式传输 MP3,而不是使用 AudioFileStreamOpen 等 API 的 AVAudioPlayer(仅适用于 URL)。
有没有办法估计流的长度?我知道我可以使用以下方法获得“已用”属性:

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

    return t.mSampleTime / dataFormat.mSampleRate;

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

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

【问题讨论】:

  • 您是如何获取音频数据的?使用 NSURLConnection?
  • 不,通过自定义 NSStream

标签: iphone streaming mp3 core-audio


【解决方案1】:

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

【讨论】:

  • 是的,这就是我想要的解决方案。
猜你喜欢
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多