iOS8 用AVAudioPlayer播放音乐(Swift)
AVAudioPlayer?類提供了播放音頻文件的功能,在本次教程中,我們將對一個音樂文件進行播放暫停和停止操作,此外還會顯示標題和播放時間。本次教程使用iOS8和Xcod6.3.1
打開Xcode創建一個新的?Single View Application?,使用IOS8SwiftPlayMusicAVAudioPlayerTutorial?作為?product name?,并填寫組織名稱和標識符。選擇?Swift?語言并確保設備選擇iPhone。
在這個工程中我們需要開始暫停和停止按鈕的圖片和一個mp3文件。你可以在這里下載?。解壓文件并把它們添加到工程,確保是拷貝他們到目標文件夾。
轉到故事板拖兩個標簽和兩個按鈕到主視圖。依次選擇他們并在?Size Inspector?填入下列值。
- 上面的標簽 -> X: 16, Y: 60, Width: 568, Height:17
- 中間的標簽 -> X: 250, Y: 120, Width: 100, Height: 36
- 左邊的按鈕 -> X: 16, Y: 220, Width: 102, Height: 102
- 右邊的按鈕 -> X:484, Y: 220, Width: 102, Height: 102
再依次選擇他們在?Attributes Inspector?添加以下值。
- 上面的標簽: Center Alignment, Font – System 14.0
- 中間的標簽: Center Alignment. Font – System Bold 30.0
- 左邊的按鈕: Type -Custom, Image – playpause.png
- 右邊的按鈕: Type – Custom, Image – stop.p
按下?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/60var seconds = currentTime - minutes * 60playedTime.text = NSString(format: "%02d:%02d", minutes,seconds) as String }播放器的?currentTime?屬性將被分割成分和秒兩部分用來顯示播放的時間。最后實現?stopSound?方法。
@IBAction func stopMusic(sender: AnyObject) {audioPlayer.stop()audioPlayer.currentTime = 0isPlaying = false }播放器調用停止方法并重置當前播放時間。當下次按下播放時,將會從頭開始播放。?isPlaying?屬性將被賦值為false,構建并運行程序,按下播放/暫停按鈕和停止按鈕來控制音樂。
你可以下載?IOS8SwiftPlayMusicAVAudioPlayerTutorial?的源代碼在GitHub?的倉庫上。
轉載于:https://www.cnblogs.com/Free-Thinker/p/5044786.html
總結
以上是生活随笔為你收集整理的iOS8 用AVAudioPlayer播放音乐(Swift)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是REST?以及RESTful的实现
- 下一篇: opencore