AVAudioPlayer - 为什么循环之间存在差距(未压缩的音频)

时间:2015-03-12 14:00:57

标签: ios iphone loops audio

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"caf"];
audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
[audioPlayer setNumberOfLoops:-1];
[audioPlayer setVolume: 0.1];
[audioPlayer play];

这是我已经掌握的基本代码,如果您需要了解更多,请与我们联系。

尝试在iPhone模拟器上运行时,压缩格式和未压缩格式都有大约1秒的差距(没有设备上运行的开发许可证)。

我错过了什么,我一直在搜索帖子,但我只能看到压缩音频的问题(这很有意义)。


Xcode:版本6.2(6C131e)
OS: OS X Yosemite版本10.10.2(14C1510)
硬件: Macbook Air 13" (2014年初) - 4GB

2 个答案:

答案 0 :(得分:1)

你在尝试之前试试“prepareToPlay”:

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"caf"];
audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL  fileURLWithPath:path] error:NULL];
[audioPlayer setNumberOfLoops:-1];
[audioPlayer setVolume: 0.1];
[audioPlayer prepareToPlay];
[audioPlayer play];

答案 1 :(得分:0)

我遇到了同样的问题,我使用AVQueuePlayer解决了这个问题,创建了一个 AVQueuePlayer 播放器并尝试使用mp3缓冲(入队)两个或三个 AVPlayerItem 通过 AVPlayerActionAtItemEnd

以懒惰模式预先存储媒体文件