如何继续播放随机歌曲?

时间:2015-06-30 21:29:47

标签: ios swift avfoundation

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

这就是我目前正在尝试的事情:

我是AVAudioPlayer的代表。我使用audioPlayerDidFinishPlaying函数来跟踪歌曲何时完成。当调用此函数时,我最好选择一首新歌来播放。但是,问题在于无法为AVAudioPlayer分配新歌。

我也尝试过调查AVQueuePlayer,它可以分配一首新歌,但是它没有audioPlayerDidFinishPlaying功能。

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

1 个答案:

答案 0 :(得分:0)

<强>一个。您可以通过以下方式准备播放列表:

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()

<强>湾或者您可以在进行更改之前准备好曲目:

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

<强>湾当你的事件“audioPlayerDidFinishPlaying”被触发时:

Player1 = sound2
Player1.play()