views:

286

answers:

3

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

+3  A: 

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.

christian Muller
A: 

Indeed it does. Thank you so much for this info.

HamSphere
A: 

Don't forget the import statement. Perhaps obvious for the more experienced programmers...

#import <AudioToolbox/AudioServices.h>
Sjors Provoost