Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 创建要播放的音乐文件队列_Ios_Iphone_Swift_Swift2 - Fatal编程技术网

Ios 创建要播放的音乐文件队列

Ios 创建要播放的音乐文件队列,ios,iphone,swift,swift2,Ios,Iphone,Swift,Swift2,我有10个音乐文件的URL。我想创建一个音乐队列,让所有的歌曲一首一首地播放,而且我还可以更改特定文件的索引 我正在使用swift 2.0 对于ex: iPhone的默认播放列表播放。您可以使用AVAudioPlayerDelegate进行播放,如下示例代码所示: import UIKit import AVFoundation class ViewController: UIViewController, AVAudioPlayerDelegate { var counter =

我有10个音乐文件的URL。我想创建一个音乐队列,让所有的歌曲一首一首地播放,而且我还可以更改特定文件的索引

我正在使用swift 2.0

对于ex:
iPhone的默认播放列表播放。

您可以使用
AVAudioPlayerDelegate
进行播放,如下示例代码所示:

import UIKit
import AVFoundation

class ViewController: UIViewController, AVAudioPlayerDelegate {

    var counter = 0
    var song = ["1","2","3"] //Song names array
    var player = AVAudioPlayer()

    @IBOutlet weak var musicSlider: UISlider!

    override func viewDidLoad() {
        super.viewDidLoad()
        musicSlider.value = 0.0
    }

    func updateMusicSlider(){

        musicSlider.value = Float(player.currentTime)
    }

    @IBAction func playSong(sender: AnyObject) {

        music()
    }
    @IBAction func sliderAction(sender: AnyObject) {

        player.stop()
        player.currentTime = NSTimeInterval(musicSlider.value)
        player.play()
    }

    func music(){

        let audioPath = NSBundle.mainBundle().pathForResource("\(song[counter])", ofType: "mp3")!
        var error : NSError? = nil
        do {
            player = try AVAudioPlayer(contentsOfURL: NSURL(string: audioPath)!)
        } catch let error1 as NSError {
            error = error1
        }
        musicSlider.maximumValue = Float(player.duration)
        NSTimer.scheduledTimerWithTimeInterval(0.05, target: self, selector: Selector("updateMusicSlider"), userInfo: nil, repeats: true)
        player.delegate = self
        if error == nil {
            player.delegate = self
            player.prepareToPlay()
            player.play()
        }
    }
    // Delegate method for AVAudioPlayerDelegate which is called every time when song finished. 
    func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool){

        if flag {
            counter++
        }

        if ((counter + 1) == song.count) {
            counter = 0
        }

        music()
    }
}
更多信息


希望它能有所帮助。

可能重复感谢@Badal,但我需要swift 2.0版本。