gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 13:04:30 24 4
gpt4 key购买 nike

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

我正在使用 swift 2.0

例如: 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()
}
}

Sample了解更多信息。

希望对您有所帮助。

关于ios - 创建要播放的音乐文件队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com