iOS9音頻文件在播放時是以必定的速度進行的。這個速度是能夠進行更改的,從而實現iOS9音頻文件的快速播放和慢速播放功能。要實現iOS9播放速度的更改須要使用AVAudioPlayer類中的rate屬性實現。其語法形式以下:swift
var rate: Floatide
其中,該屬性設置的值爲浮點類型,範圍在0.5到2.0之間。若是該屬性的值設置爲1.0表示正常播放,它也是默認值。2.0表示以最快的速度進行播放,0.5表示以最慢的速度進行播放。spa
注意:若是開發者要iOS 9音頻實現播放速度的改變則必需要對enableRate屬性進行設置,該屬性的功能是否容許改變播放速度。其語法形式以下:.net
var enableRate: Boolorm
其中,該屬性設置的值爲布爾類型。將值爲true時,表示容許改變播放速度,反之,則不運行改變播放速度。教程
【示例2-6】如下將以第一個iOS 9音頻實例爲基礎,讓用戶能夠控制音頻文件的播放速度。具體的操做步驟以下:開發
(1)將主視圖中的Rate Text Field文本框與插座變量rateTextField進行關聯。get
(2)將主視圖中的Rate Text Field文本框與動做setRate進行關聯。string
(3)右擊主視圖中的Rate Text Field文本框,在彈出的Rate Text Field對話框,如圖2.27所示。it
(4)選擇Sent Events下的Did End On Exit選項,將此選項和dock中的View Controller進行關聯,如圖2.28所示。
(5)Did 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人!