iOS 9音訊應用播放音訊之控制播放速度

大學霸發表於2015-12-30

iOS 9音訊應用播放音訊之控制播放速度

iOS 9音訊控制播放速度

iOS9音訊檔案在播放時是以一定的速度進行的。這個速度是可以進行更改的,從而實現iOS9音訊檔案的快速播放和慢速播放功能。要實現iOS9播放速度的更改需要使用AVAudioPlayer類中的rate屬性實現。其語法形式如下:


  • var rate: Float


其中,該屬性設定的值為浮點型別,範圍在0.52.0之間。如果該屬性的值設定為1.0表示正常播放,它也是預設值。2.0表示以最快的速度進行播放,0.5表示以最慢的速度進行播放。

注意:如果開發者要iOS 9音訊實現播放速度的改變則必須要對enableRate屬性進行設定,該屬性的功能是否允許改變播放速度。其語法形式如下:


  • var enableRate: Bool


其中,該屬性設定的值為布林型別。將值為true時,表示允許改變播放速度,反之,則不執行改變播放速度。

【示例2-6】以下將以第一個iOS 9音訊例項為基礎,讓使用者可以控制音訊檔案的播放速度。具體的操作步驟如下:

1將主檢視中的Rate Text Field文字框與插座變數rateTextField進行關聯。

2將主檢視中的Rate Text Field文字框與動作setRate進行關聯。

3右擊主檢視中的Rate Text Field文字框,在彈出的Rate Text Field對話方塊,如圖2.27所示。

4選擇Sent Events下的Did End On Exit選項,將此選項和dock中的View Controller進行關聯,如圖2.28所示。

5Did End On Exit選項和dock中的View Controller進行關聯後,會彈出當前宣告的方法,如圖2.29所示。


2.28  iOS 9音訊關聯

6選擇其中的setRate:方法,此時Did End On Exit就與setRate:方法進行關聯了,如圖2.30所示。


2.29 iOS 9音訊彈出方法對話方塊                2.30  iOS 9音訊關聯後的效果

7開啟ViewController.swift檔案,編寫程式碼,實現播放速度的控制。程式碼如下:


  • @IBAction func setRate(sender: AnyObject) {
  • rateTextField.resignFirstResponder()                                                                                    //關閉鍵盤
  • //判斷音訊檔案是否沒有開始播放
  • if(audioEffect!.playing==false && audioEffect?.currentTime == 0.0){
  •     //沒有開始播放
  •         audioEffect?.enableRate=true                                                                             //允許改變播放速度
  •         let rateValue=NSString(string: rateTextField.text!).floatValue
  •         audioEffect?.rate=rateValue                                                                                //設定播放速度
  •         hideMoreSettingsView()
  • }else{
  •     //開始播放
  •         let alertController = UIAlertController(title: "提示", message: "音樂開已經播放,設定無效", preferredStyle: UIAlertControllerStyle.Alert)
  •         //關閉更多設定項
  •         let action = UIAlertAction(title: "知道了", style: UIAlertActionStyle.Default){
  •             (action: UIAlertAction!) -> Void in
  •             self.hideMoreSettingsView()
  •         }
  •         alertController.addAction(action)
  •         self.presentViewController(alertController, animated: true, completion: nil)
  •     }
  • }


此時執行程式,在出現的模擬器介面中輕拍更多按鈕,彈出更多設定項,在播放速度對應的文字框中輸入數字,按下return鍵後,退出更多設定項。輕拍播放按鈕,音訊檔案就會進行播放了。此時音訊檔案播放的速度與使用者輸入的數字有關。

注意:如果開發者在iOS 9音訊檔案播放一段時間後輕拍更多按鈕,在彈出的更多設定項中輸入播放速度,此時輸入的速度是無效的,它不可以控制音訊檔案的播放速度,所以在按下return鍵後,會彈出“iOS9音樂已經播放,設定無效”的警告檢視,如圖2.31所示。


2.31  iOS 9音訊警告檢視

本文選自:iOS 9音訊應用開發基礎教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1967645/,如需轉載,請註明出處,否則將追究法律責任。

相關文章