AudioUnit錄音和播放同時進行的一些注意點


錄音(播放)和暫停

-(void)start
{
    self.soundTotalLength = 0.0f;
    if (!self.unitHaveStart)
    {
        NSError *error = nil;
        [self.audioSession setCategory:AVAudioSessionCategoryPlayAndRecord  error:&error];
        [self.audioSession setActive:YES error:&error];
        OSStatus status = AudioOutputUnitStart(_audioUnit);
        if (status == noErr)
        {
            
            self.unitHaveStart = YES;

        }
    }
    
    self.isStatusInRecordingSound = YES;
}

-(void)pause
{
//以下的問題在設置了后台播放功能時體現
//不調用該函數將導致回調函數一直在執行,錄音無法暫停 AudioOutputUnitStop(_audioUnit); self.unitHaveStart = NO; self.isStatusInRecordingSound = NO; //不設置該模式,退到后台后將無法正常播放視頻,導致視頻一直立刻暫停(優酷),一直暫停播放(相冊自己保存的視頻),正常播放(相冊手機錄制的視頻) NSError *error = nil; [self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&error]; [self.audioSession setActive:NO error:&error]; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM