為什么總是返回-160或者-120
第一步。百度。谷歌,,這個我試了,看過所有的結果后我真想罵娘,只有一個答案就是將audioSession
設置AVAudioSessionCategoryPlayAndRecord
或者其他Record類的,可我就是這樣設置的,尼瑪真夠了。放棄。
第二步。請教同事,同事做過類似微信發語音的,找了他的代碼,看了一下,一行一行對比,結果沒有發現什么問題,可是人家的就能運行。放棄。
第三步。自己作最后的掙扎,一步一步調試,尼瑪什么,[_audioRecorder prepareToRecord]
這個玩意返回NO,看到了勝利的曙光,_audioRecorder
都沒有準備好,還怎么錄音,怎么不返回-160之類的呢,于是繼續往上找,沒有準備好,就說明_audioRecorder
配置有問題,于是我查了錄音設置字典沒有問題,查了錄音保存路徑,什么,等等,NSDocumentationDirectory
這是什么玩意,不仔細看,真讓他給我騙了,記得目錄結構里面沒有這個東西啊,于是我換成了NSDocumentDirectory
。大功告成。自己試著錄了一段,播放一了,都正常。
我想說的是,雖然百度、谷歌很強大,也很方便,但是如果你遇到一個問題,最好是在搜索引擎上不要花過多的時間,能找到就看,不能找到就立馬放棄,回到代碼上自己單步調試跟蹤,這未嘗不是一個自我學習升華的過程。
提示:[_audioRecorder recordForDuration:60]
設置完后,[self.audioRecorder isRecording]
的狀態會立馬返回YES
剛才說的目錄問題,也在這里給大家普及一下,我們iOS開發是在沙盒中開發,我們只能在Documents、tmp、Library/Caches這三個文件夾讀寫,NSDocumentationDirectory這個對應的是Library/Documentation,這個路徑我們是沒有讀寫權限的。
忘了說自己的初衷了,本來是想幫朋友一個忙的,朋友有這樣一個需求,,他們做一個教育類軟件,需要上課,老師和同學可以語音聊天,如果正在上課的時候,我返回到home,屏幕最上方應該會有一個紅色的提示條,類似于系統的打電話軟件一樣,點擊紅色的提示條,會返回到通話里面,不知道我描述的清不清楚,QQ語音也有這個功能,其實可以搜索VoIP相關就可以。我也幫他整了一下,其實就是在info.plist里面加一條設置就可以了,好像這個不加,錄音都不行,畢竟錄音是要請求權限的,如果是這樣的話,那就直接可以實現直接從home輕觸返回到你的APP上了。