2012-12-03 48 views

回答

2

只要您不在最后停止/启动它,并将numberOfLoops设置为负整数,它应该可以工作。

4

由于音乐被压缩(例如mp3),您可能会听到延迟。 AVAudioPlayer必须在流媒体时解码MP3。如果您使用的是未压缩格式的相同音乐,则需要更多的磁盘空间,但会无缝循环。

1

我在尝试创建无缝循环时遇到了问题。我尝试使用numberOfLoops属性,但没有成功。我尝试切换到未压缩的音频文件,但没有成功。我甚至尝试切换到AVAudioQueuePlayer,排队与同一资产的多个实例,没有成功。最后,我通过创建两个AVAudioPlayer(player1 & player2)并在它们之间切换来解决问题。我开始播放player1并使用player2的prepareToPlay方法,并使用play(atTime time:)方法将TimeInterval设置为player1.deviceCurrentTime - player1.currentTime + player1.duration。 然后我使用代理方法audioPlayerDidFinishPlaying准备player1以在player2完成后重新开始播放。说实话,我不知道这种方法为什么起作用,只是将numberOfLoops设置为-1没有。但它可能也适用于你