AVAudioPlayer 类提供了播放音频文件的功能,在本次教程中,我们将对一个音乐文件进行播放暂停和停止操作,此外还会显示标题和播放时间。本次教程使用iOS8和Xcod6.3.1
打开Xcode创建一个新的 Single View Application ,使用IOS8SwiftPlayMusicAVAudioPlayerTutorial 作为 product name ,并填写组织名称和标识符。选择 Swift 语言并确保设备选择iPhone。

在这个工程中我们需要开始暂停和停止按钮的图片和一个mp3文件。你可以在这里下载 。解压文件并把它们添加到工程,确保是拷贝他们到目标文件夹。

转到故事板拖两个标签和两个按钮到主视图。依次选择他们并在 Size Inspector 填入下列值。
再依次选择他们在 Attributes Inspector 添加以下值。
按下 Resolve Auto Layout 按钮在故事板的右下角,选择 Reset to Suggested Constraints
现在故事板看起来是这样的

选择助理窗口并确保 ViewController.swift 可见。
按住 Ctrl 拖动顶部的标签创建下列的插口。

按住 Ctrl 拖动中间的标签创建下列的插口。

按住 Ctrl 拖动播放暂停图片创建下列动作。

按住 Ctrl 拖动播放停止图片创建下列动作。

在 ViewController.swift 文件中导入 AVFoundation 框架。
import AVFoundation
添加下列属性在 ViewController 类中
var audioPlayer = AVAudioPlayer()
var isPlaying = false
var timer:NSTimer!
AVAudioPlayer 类可以让你播放任何iOS支持的音频格式。使用 isPlaying 布尔值来表示当前是否正在播放音乐。 NSTimer 属性用来显示当前播放音乐的时间。
修改 viewDidLoad 方法
override func viewDidLoad() {
super.viewDidLoad()
trackTitle.text = "Future Islands - Tin Man"
var path = NSBundle.mainBundle().URLForResource("Future Islands - Tin Man", withExtension: "mp3")
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: path!, error: &error)
}
将标题赋值给标题的标签,然后用音乐文件初始化 AVAudioplayer ,接着实现playOrPauseMusic 方法。
@IBAction func playOrPauseMusic(sender: AnyObject) {
if isPlaying {
audioPlayer.pause()
isPlaying = false
} else {
audioPlayer.play()
isPlaying = true
timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "updateTime", userInfo: nil, repeats: true)
}
}
首先我们判断是否正在播放,如果是,那么暂停音乐并改变 isPlaying 的值,如果没有播放,我们播放它并改变 isPlaying 的值。然后创建一个 NSTimer 对象用来每秒调用 updateTime 方法,我们来实现它。
func updateTime() {
var currentTime = Int(audioPlayer.currentTime)
var minutes = currentTime/60
var seconds = currentTime - minutes * 60
playedTime.text = NSString(format: "%02d:%02d", minutes,seconds) as String
}
播放器的 currentTime 属性将被分割成分和秒两部分用来显示播放的时间。最后实现 stopSound 方法。
@IBAction func stopMusic(sender: AnyObject) {
audioPlayer.stop()
audioPlayer.currentTime = 0
isPlaying = false
}
播放器调用停止方法并重置当前播放时间。当下次按下播放时,将会从头开始播放。 isPlaying 属性将被赋值为false,构建并运行程序,按下播放/暂停按钮和停止按钮来控制音乐。

你可以下载 IOS8SwiftPlayMusicAVAudioPlayerTutorial 的源代码在GitHub 的仓库上。
iOS8 用AVAudioPlayer播放音乐(Swift)
原文:http://www.cnblogs.com/Free-Thinker/p/5044786.html