【发布时间】:2009-08-24 21:43:22
【问题描述】:
已经完成了播放器的实现。我想实现进度条。但我想知道这是否可能,因为我们正在播放音乐。除非事先向我们提供歌曲的长度。
拜托,我需要你的建议。
【问题讨论】:
标签: iphone streaming audioqueueservices
已经完成了播放器的实现。我想实现进度条。但我想知道这是否可能,因为我们正在播放音乐。除非事先向我们提供歌曲的长度。
拜托,我需要你的建议。
【问题讨论】:
标签: iphone streaming audioqueueservices
除非事先为您提供音频文件的大小(或时间长度),否则您无法设置进度条的范围(没有最大值)。
【讨论】:
实际上,我找到了一种方法,并且成功了。您计算歌曲的每个数据包的帧数,以及平均数据包的大小(以字节为单位)。使用 NSHTTPConnection 获取文件大小并使用这个公式:
totalFrames = (fileSize * framesPerPacket / 平均数据包大小)
当你有总帧数时,只需将其除以比特率,然后你就得到了 总时间!!
【讨论】:
AudioFileStreamGetProperty (stream, kAudioFileStreamProperty_AudioDataPacketCount, ...)) 似乎从来没有真正提供有用的结果,所以除非我还没有找到另一种方法,否则这看起来是最好的选择。
kAudioFileStreamProperty_AudioDataByteCount,如果存在应该是准确的......