我如何继续播放随机歌曲?

How do I keep playing random songs?

假设我有一个歌曲列表。我基本上希望我的应用程序从列表中随机选择一首歌曲,播放它,当它完成时,选择另一首随机歌曲,播放它等等。

这是我目前正在尝试的:

我做了一个 AVAudioPlayer 的委托。我使用 audioPlayerDidFinishPlaying 函数来跟踪歌曲何时播放完毕。当这个函数被调用时,我会理想地选择一首新歌来播放。但是,这样做的问题是AVAudioPlayer无法分配新歌曲。

我也尝试查看 AVQueuePlayer,它可以分配一首新歌,但是,它没有 audioPlayerDidFinishPlaying 函数。

有人能给我指出正确的方向吗?

一个。您可以这样准备播放列表:

var Player1 = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("1", ofType: "mp3")!), error: nil)

var sound1 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("1", ofType: "mp3")!)
var sound2 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("2", ofType: "mp3")!)
var sound3 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("3", ofType: "mp3")!)
var sound4 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("4", ofType: "mp3")!)

Player1.prepareToPlay()
Player1.play()

一个。当您的事件 "audioPlayerDidFinishPlaying" 被触发时:

Player1 = AVAudioPlayer(contentsOfURL: sound2, error: nil)
Player1.prepareToPlay()
Player1.play()

b.或者您可以在进行更改之前准备曲目:

var sound2 = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("2", ofType: "mp3")!), error: nil).prepareToPlay()

b.当您的事件 "audioPlayerDidFinishPlaying" 被触发时:

Player1 = sound2
Player1.play()