Low recording volume in combination with AVAudioSessionCategoryPlayAndRecord

christian Muller picture christian Muller · Feb 11, 2010 · Viewed 10.4k times · Source

When I set:

[[AVAudioSession sharedInstance] setCategory:
    AVAudioSessionCategoryPlayAndRecord error:NULL];

…recording and playing works fine, just the playback volume is around 60% lower than when I would just play the same sound without recording and settings PlayAndRecord.

I need to get high volume peaks (to check if a user blow in the mic) for that i started a recording session. But without settings AVAudio..PlayandRecord, i can not playback any sounds in the meantime. Thats the reason i implemented this command.

Any Help?

Thx Chris

Answer

christian Muller picture christian Muller · Feb 11, 2010

For everyone with the same problem, redirect your output to the speaker:

[[AVAudioSession sharedInstance] setCategory:
    AVAudioSessionCategoryPlayAndRecord error:NULL];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
    sizeof(audioRouteOverride), &audioRouteOverride);

That works.