2016-12-17 106 views
0

在iOS的10.2應用程序後,停止/重新啓動,一個AVAudioRecorder設置錄製,並顯示電平表:AvAudioRecorder錄音剛開始

recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&error]; 
[recorder setDelegate:self]; 
[recorder prepareToRecord]; 
[recorder record]; 

當我開始了錄音機,我注意到,VU表沒有更新。我注意到錄製開始後立即調用audioRecorderDidFinishRecording: successfully:方法。但AVAudioRecorder之後仍然錄製。音頻文件可以保存並播放。

更奇怪的是,當我暫停錄音並重新開始錄音時,audioRecorderDidFinishRecording: successfully:沒有像第一種情況那樣被解僱,並且通過vu-meter更新繼續錄音。

這種奇怪的行爲的任何想法?

回答

1

當您設置AVPlayer時,您必須記住只有一個實例可以完成,您可以播放錄製的音頻或可以運行錄音機。因此您必須管理委託和AVPlayer配置設置。

希望它有效。

+0

當我處於錄製階段並且只有AudioRecorder的一個實例時,我不使用任何AVPlayer。我檢查了。編譯了一段時間之前在iOS 8下,我沒有這種奇怪的行爲,而在我的應用程序的記錄器部分中使用完全相同的代碼...在iOS10.2上運行這個舊版本沒有問題... – Denis

+0

已解決在重新閱讀你的答案之後:實際上,audioRecorderDidFinishRecording:successful:會被延遲觸發(應用程序在iOS10.2上編譯時似乎更長)。由於我使用臨時錄像機來顯示信號電平,並在創建實際錄像機之前停止/釋放它,所以在本錄像機開始錄製之後,該方法被觸發,從而造成干擾!謝謝阿曼! – Denis

+0

歡迎您:) –