使用 AVAudioPlayer 中途开始播放 .mp3

Posted

技术标签:

【中文标题】使用 AVAudioPlayer 中途开始播放 .mp3【英文标题】:Start .mp3 play half way through with AVAudioPlayer 【发布时间】:2009-12-07 16:30:20 【问题描述】:

好的,这不是一个简单的问题(至少现在还不是)。

我的 AVAudioPlayer 运行良好:我使用 NSURLConnection 下载了一个 mp3,然后使用 AVAudioPlayer 播放该数据。我的问题是如何在 mp3 中的任意位置开始播放 AVAudioPlayer?

我可以通过设置 HTTP 标头在任意点开始下载,没问题。 mp3 下载的前两个数据包似乎是标头信息,似乎 AVAudioPlayer 需要这些才能正确播放。同样,如果我拿一个连续的 mp3 并在中途切掉一段数据,AVAudioPlayer 不喜欢它。

有没有办法可以窥视 mp3 的编码,将文件的最后四分之一无缝拼接到标题上?还是更明显的?

【问题讨论】:

只是为了澄清:我想跳到尚未下载的 mp3 部分。例如。下载前 10,000 个字节,然后跳过并从第 60,000 个字节开始下载并从那里开始播放。 【参考方案1】:

不要使用 AVAudioPlayer。使用核心音频。您可以更好地控制音频,并可以让它播放您选择的任何文件。

AVAudioPlayer 是一个非常简单的类,没有给您太多控制。

【讨论】:

谢谢你的提示,我去看看。【参考方案2】:

查看:http://cocoawithlove.com/2009/06/revisiting-old-post-streaming-and.html - 它指导您如何设置流式 MP3 播放器,我认为这与您所追求的很接近。

【讨论】:

我对那个帖子很熟悉,我已经有了一个流媒体 MP3 播放器,但我找不到任何实现了我所追求的功能的人。

以上是关于使用 AVAudioPlayer 中途开始播放 .mp3的主要内容,如果未能解决你的问题,请参考以下文章

同时使用 AVAudioPlayer 和 MPMoviePlayerController

如何在 AVAudioPlayer 开始播放音频时准确获取通知?

使用 AVAudioPlayer 重复音频播放

使用 AVAudioPlayer 在后台播放声音序列

AVAudioPlayer 失真

AVAudioPlayer- 从声音缓冲区播放