2012-12-03 47 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沒有。但它可能也適用於你