iOS 錄音功能
初始化AVAudioRecorder 對象
init(url: URL, settings: [String : Any]) throws
1. url : 音頻文件保存路徑
2. settings: 錄制的屬性
* AVFormatIDKey: 音頻格式
* AVSampleRateKey: 采樣頻率
* AVNumberOfChannelsKey : 音頻的通道數
* AVLinearPCMBitDepthKey : 設置錄制音頻的每個樣點的位數
* AVLinearPCMIsBigEndianKey : 設置錄制音頻采用高位優先的記錄格式
* AVLinearPCMIsFloatKey : 置采樣信號的浮點數
....還有很多其它屬性,具體請看文檔
3. outError : 錯誤描述
配置和控制錄音相關方法
func prepareToRecord() -> Bool
創建一個audio文件,準備錄制
func record() -> Bool
啟動或恢復錄制。
func record(atTime time: TimeInterval) -> Bool //延遲幾秒錄制
NSTimeInterval recordDelay = 3.0; //must be ≥ 0
[myAudioRecorder recordAtTime:(myAudioRecorder.deviceCurrentTime + recordDelay)];
//duration 最長錄制時間
func record(forDuration duration: TimeInterval) -> Bool
func pause() //暫停錄制
func stop() //暫停錄制
func deleteRecording() -> Bool //刪除錄音文件
var delegate: AVAudioRecorderDelegate? { get set }
* func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder,
successfully flag: Bool)
*func audioRecorderEncodeErrorDidOccur(AVAudioRecorder, error: Error?)
例子
let recorderSettings:[String:AnyObject] = [AVFormatIDKey : NSNumber(unsignedInt: kAudioFormatMPEG4AAC), AVSampleRateKey : 44100.0 as NSNumber, AVNumberOfChannelsKey : 2 as NSNumber, AVEncoderAudioQualityKey : AVAudioQuality.High.rawValue as NSNumber,AVEncoderBitRateKey : 320000 as NSNumber]
do {
audioRecorder = try AVAudioRecorder(URL: url, settings: recorderSettings)
audioRecorder.delegate = self
audioRecorder.prepareToRecord()
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
}catch let error as NSError{
print(error)
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。