iPhone渐进式下载音频播放器

9
我正在尝试为iPhone实现渐进式下载音频播放器,使用http和固定大小的mp3文件。
我找到了AudioStreamer项目,但它似乎非常复杂,并且最适合无限流。
我需要能够找出音频文件的总长度,我还需要能够在文件中寻找。我找到了一个从AudioStreamer分支出来的破解版本,但对我来说似乎不太好用。http://www.saygoodnight.com/?p=14 我想知道是否有更简单的方法来实现我的目标,或者是否有更好的工作示例?我找到了bass库,但没有太多关于它的文档。
/ Johannes

我正在为这个问题添加赏金,因为我有同样的问题 - 希望在下载/播放时保存内容。 - ajacian81
4个回答

8
很遗憾,在iPhone上播放音频流并不简单。以下是引导我开始的文章:Streaming and playing an MP3 stream。虽然这是一个OSX项目,但其中大部分内容也适用于iPhone。至于获取其完整播放时间,您可能需要根据http标头的content-length属性来确定,前提是它是CBR文件。否则,我想您需要在确定之前先下载整个文件。

1
+1 链接到 Cocoa With Love,我也有一个应用程序发布在那里,只有使用这个资源才能让它运行。 - return1.at

5
如果你只需要播放MP3文件,为什么要编写自己的下载器/播放器?iOS内置了几个选项,每个选项都支持渐进式下载和MP3播放:
- MPMoviePlayerController - AVPlayer - Safari

4

《iPhone Cool Projects》一书中关于流媒体音频有一章节内容非常好。 http://apress.com/book/view/9781430223573 该章节介绍了一种比AudioStreamer更简单的方法(使用NSURLConnection而不是CFNetwork),更适用于渐进式下载,并且没有多线程代码。

如果要找出音频文件的大小,可以使用[response expectedContentLength]

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 

1
我知道这是一个相当古老的帖子,但我想建议一个可靠的开源库。它基于Matt Gallagher的原始帖子,由@pzearfoss推荐。当前版本现在使用AudioUnits而不是AudioQueue类,因此它为您提供了对原始PCM样本的访问,以进行任何想要进行的操作(过滤等),然后再播放。它还免费提供渐进式下载功能,只需付出相当少的努力即可。该库似乎正在积极更新,这是一个巨大的优点! StreamingKit by @tumtumtum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接