iOS 9音訊應用播放音訊之播放控制暫停停止前進後退的設定
iOS 9音訊應用播放音訊之播放控制暫停停止前進後退的設定
ios9音訊應用播放控制
在“iOS 9音訊應用播放音訊之ios9音訊基本功能”一文可以看到AVAudioPlayer類有很多的屬性以及方法。本節將AVAudioPlayer類中常使用到的屬性和方法進行詳細的講解。
ios9音訊應用暫停/停止
在音樂應用程式中都會有一個使音樂停止播放的按鈕。當使用者輕拍該按鈕,正在播放的音樂就會停止。在iOS要想要正在播放的音訊停止下來,可以使用AVAudioPlayer類中的pause()方法和stop()方法。
1.暫停
pause()方法的功能是暫停正在播放的音訊檔案,音訊檔案仍然準備從暫停處離開恢復播放。其語法形式如下:
- func pause()
2.停止
stop()方法的功能是停止正在播放的音訊檔案,並撤消所需的播放設定,即如果恢復播放,音訊檔案就需要重新開始播放。其語法形式如下:
- func stop()
注意:stop()方法在Xcode 6.0之後和pause的功能是一樣的,但是幫助文件中對stop()的簡介還是以前的。
【示例2-1】以下將以第一個例項為基礎,在播放音訊的基礎上實現暫停音訊播放的功能。程式碼如下:
- @IBAction func playAudio(sender: AnyObject) {
- audioEffect?.play() //播放聲音
- playButton.setBackgroundImage(UIImage(named: "pauseImage.png"), forState: UIControlState.Normal)
- playButton.addTarget(self, action: ("pauseAudio"), forControlEvents: UIControlEvents.TouchUpInside)
- }
- func pauseAudio(){
- audioEffect?.pause() //暫停
- playButton.setBackgroundImage(UIImage(named: "playImage.png"), forState: UIControlState.Normal)
- playButton.addTarget(self, action: ("playAudio:"), forControlEvents: UIControlEvents.TouchUpInside)
- }
此時執行程式,在出現的模擬器介面中輕拍播放按鈕,此時音訊檔案就會播放,並且播放按鈕會變為暫停按鈕;當開發者輕拍暫停按鈕,播放的音訊檔案就會暫停播放,並且暫停按鈕就變為原來的播放按鈕。
注意:由於在大多數的音樂播放器中都不會出現停止控制元件,所在在此示例中也就不進行程式碼實現了。
ios9音訊應用前進/後退
在AVAudioPlayer類中有一個currentTime屬性。該屬性可以用來對當前播放的音訊檔案的時長進行設定的,即對當前播放的音訊檔案的播放位置進行設定。該屬性值以秒為單位的。其語法形式如下:
- var currentTime: NSTimeInterval
透過對currentTime屬性的設定,我們可以實現在音樂應用中的前進後退功能。
1.前進
前進功能就是讓正在播放的音訊檔案前進幾秒進行播放。它的實現就是讓currentTime屬性設定的值進行固定的加法運算。
【示例2-2】以下將以第一個例項為基礎,實現前進的功能。具體的操作步驟如下:
(1)將主檢視中的Forward Button按鈕與動作forwardAudio進行關聯。
(2)開啟ViewController.swift檔案,編寫程式碼,實現前進功能。程式碼如下:
- @IBAction func forwardAudio(sender: AnyObject) {
- //判斷音訊檔案是否正在播放
- if(audioEffect!.playing){
- //音訊檔案正在播放,實現前進
- let desiredTime=(self.audioEffect?.currentTime)!+20.0
- //判斷設定的時間是否小於音訊檔案的總時間
- if(desiredTime<self.audioEffect?.duration){
- self.audioEffect?.currentTime=desiredTime //設定當前播放的時間
- }
- }else{
- let alertController = UIAlertController(title: "提示", message: "音樂沒有開始播放", preferredStyle: UIAlertControllerStyle.Alert)
- let action = UIAlertAction(title: "知道了", style: UIAlertActionStyle.Default, handler: nil)
- alertController.addAction(action)
- self.presentViewController(alertController, animated: true, completion: nil)
- }
- }
此時執行程式後,在模擬器介面中輕拍播放按鈕,此時音訊檔案就會開始播放,當開發者輕拍前進按鈕後,音訊檔案就會快進20秒然後進行播放。(每輕拍一次就會快進20秒的進度)。
注意:如果開發者沒有輕拍播放按鈕,而是直接輕拍前進按鈕,那麼就是彈出“音樂沒有開始播放”的警告檢視,如圖2.25所示。
圖2.25 警告檢視
2.後退
後退功能就是讓正在播放的音訊檔案後退幾秒進行播放。它的實現就是讓currentTime屬性設定的值進行固定的減法運算。
【示例2-3】以下將以第一個例項為基礎,實現後退的功能。具體的操作步驟如下:
(1)將主檢視中的Backward Button按鈕與動作backwardAudio進行關聯。
(2)開啟ViewController.swift檔案,編寫程式碼,實現後退功能。程式碼如下:
- @IBAction func backwardAudio(sender: AnyObject) {
- if(audioEffect!.playing){
- //實現後退
- let desiredTime=(self.audioEffect?.currentTime)!-20.0
- //判斷指定的時間是否為0
- if(desiredTime<0){
- self.audioEffect?.currentTime=0.0
- }else{
- self.audioEffect?.currentTime=desiredTime
- }
- }else{
- let alertController = UIAlertController(title: "提示", message: "音樂沒有開始播放", preferredStyle: UIAlertControllerStyle.Alert)
- let action = UIAlertAction(title: "知道了", style: UIAlertActionStyle.Default, handler: nil)
- alertController.addAction(action)
- self.presentViewController(alertController, animated: true, completion: nil)
- }
- }
- }
此時執行程式後,在模擬器介面中輕拍播放按鈕,此時音訊檔案就會開始播放。當開發者輕拍後退按鈕後,音訊檔案就會後退20秒然後進行播放。(每輕拍一次就會後退20秒的進度)。
注意:如果開發者沒有輕拍播放按鈕,而是直接輕拍後退按鈕,那麼就是彈出“音樂沒有開始播放”的警告檢視。
本文選自:iOS 9音訊應用開發基礎教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1844488/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS 9音訊應用播放音訊之iOS 9音訊播放進度iOS音訊
- iOS 9音訊應用播放音訊之控制播放速度iOS音訊
- iOS 9音訊應用播放音訊之ios9音訊基本功能iOS音訊
- iOS 9音訊應用播放音訊之音量設定與聲道設定iOS音訊
- iOS 9音訊應用播放音訊之第一個ios9音訊例項iOS音訊
- iOS 9音訊應用播放音訊之第一個ios9音訊例項2iOS音訊
- Video元件:控制視訊的播放與暫停IDE元件
- 電腦播放音訊聽不到聲音音訊
- Android 音視訊開發 - 使用AudioTrack播放音訊Android音訊
- 使用soundPool播放音訊音訊
- 使用jQuery播放/暫停 HTML5視訊jQueryHTML
- ios中的音訊播放,好文,mark,等待後續iOS音訊
- iOS開發:音訊播放、錄音、視訊播放、拍照、視訊錄製iOS音訊
- iOS AVAudioPlayer(音訊播放)iOS音訊
- JS控制音訊順序播放JS音訊
- iOS開發系列--音訊播放、錄音、視訊播放、拍照、視訊錄製(轉)iOS音訊
- Android中用SoundPool播放音訊Android音訊
- 微信小程式播放音訊列表微信小程式音訊
- 3、Opencv播放視訊、儲存、暫停視訊,開啟攝像頭OpenCV
- 用觸發器在PowerPoint控制音訊的播放觸發器音訊
- Android音視訊之MediaPlayer音視訊播放Android
- iOS開發之簡單音訊播放器iOS音訊播放器
- iOS AVPlayer之後臺連續播放視訊iOS
- vue+樹莓派實現實時視訊播放暫停Vue樹莓派
- ios平臺cocos2d-x播放音訊、視訊、音效的Demo(支援網路視訊)iOS音訊
- 多個audio播放器播放,暫停,時間控制播放器
- video視訊標籤播放時js/jQuery顯示播放控制元件會導致播放暫停解決辦法IDEJSjQuery控制元件
- python實現播放音訊和錄音功能示例程式碼Python音訊
- Android中用MediaPlay播放音訊和影片Android音訊
- 七、FFmpeg 4.0.2 + SDL2 播放音訊音訊
- iOS 收款推送訊息語音播報iOS
- 視音訊播放音訊
- 訊息語音播報,微信語音自動播放,有點兒意思,可以看看這個應用
- iOS開發簡單的音訊播放器iOS音訊播放器
- iOS之視訊的三種播放方式iOS
- 音視訊系列之iOS: 音訊採集 AudioUnitiOS音訊
- 帶你用AVPlayer實現音訊和視訊播放音訊
- iOS- 關於AVAudioSession的使用——後臺播放音樂iOSSession