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

jopen 8年前發布 | 12K 次閱讀 iOS開發 移動開發

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所示。


iOS 9音頻應用播放音頻之控制播放速度 - 大學霸的個人空間

2.28  iOS 9音頻關聯

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

iOS 9音頻應用播放音頻之控制播放速度 - 大學霸的個人空間

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所示。

iOS 9音頻應用播放音頻之控制播放速度 - 大學霸的個人空間

2.31  iOS 9音頻警告視圖

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


來自: http://my.oschina.net/u/1585857/blog/591424

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!