iOS录制时如何在扬声器中播放警报声

时间:2014-07-14 07:32:05

标签: ios audio record playback

我想在录制音频时手动触发播放一些警报声,我希望录制警报声。因此,在录制音频时,我希望在扬声器中大声播放警报而不是接收器。

我使用AVAudioRecorder录制音频并使用AVAudioPlayer播放提示音。 录像机代码

AVAudioSession *session = [AVAudioSession sharedInstance];

NSError *sessionError;
[session setCategory:AVAudioSessionCategoryRecord error:&sessionError];

if(session == nil)
    NSLog(@"Error creating session: %@", [sessionError description]);
else
    [session setActive:YES error:nil];
recorder = [[AVAudioRecorder alloc] initWithURL:_recordedFile settings:recordSettings error:nil];
[recorder prepareToRecord];
[recorder record];

播放器代码

    AVAudioSession *session = [AVAudioSession sharedInstance];
// session.outputDataSources
NSError *sessionError;
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

// use the louder speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
                         sizeof (audioRouteOverride),&audioRouteOverride);

if(session == nil)
    NSLog(@"Error creating session: %@", [sessionError description]);
else
    [session setActive:YES error:nil];

NSError *error;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:self.filePath error:&error];
player.delegate =self;
player.volume = 1.0;
player.numberOfLoops = 0;
self.timeDuration = player.duration;

如果我停止录制,并手动触发播放提示,它将以扬声器播放。 但在录制过程中,当我手动触发播放提醒时,没有任何反应。 这里有什么不对吗?或者录音时是否可以在扬声器中播放声音?

1 个答案:

答案 0 :(得分:1)

只需更改类别,如下所示

[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];