2011-07-07 49 views
2

我在進入後臺後暫停AVAudioRecorder時出現問題。基本上,它是這樣的(_recorder是我AVAudioRecorder實例):iPhone AVAudioRecorder進入後臺後暫停問題

  1. 開始錄音:

    [_recorder record]; 
    
  2. 按下設備上的主頁按鈕。

  3. 因爲我已經設置了觀察者通知這種情況(在viewDidLoad),我的自定義方法applicationDidEnterBackground觸發。
  4. 在applicationDidEnterBackground我做的:

    [_recorder pause]; 
    
  5. 現在,當我點擊應用程序圖標,採取應用前景,立即記錄連續,沒有采取任何行動。它甚至陌生人,因爲檢查屬性:

    _recorder.recording == YES 
    

;否。

我有一個功能,即通過所謂的NSTimer每隔0.1秒(刷新UI等),並在該函數我有這樣的:

if(_recorder.recording) { 
    NSLog(@"recording"); 
} 
else { 
    NSLog(@"not recording"); 
    NSLog(@"time: %f", _recorder.currentTime); 
} 

它打印在控制檯上:

... 
    not recording 
    time: 9.404082 
    not recording 
    not recording 
    time: 9.473197 
    not recording 
    time: 9.531179 
    not recording 
    time: 9.629206 
    not recording 
    time: 9.728435 
    ... 

因此,如您所見,錄音機的當前時間一直增加,並且正在錄製音頻。

任何想法如何解決這個問題?

回答

7

您應該添加以下代碼:

<key>UIBackgroundModes</key> 
<array> 
    <string>audio</string> 
</array> 

到Info.plist中。這將導致後臺模式響應管理音頻會話,因此您可以手動暫停並恢復錄製。