我想在录制音频时手动触发播放一些警报声,我希望录制警报声。因此,在录制音频时,我希望在扬声器中大声播放警报而不是接收器。
我使用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;
如果我停止录制,并手动触发播放提示,它将以扬声器播放。 但在录制过程中,当我手动触发播放提醒时,没有任何反应。 这里有什么不对吗?或者录音时是否可以在扬声器中播放声音?
答案 0 :(得分:1)
只需更改类别,如下所示
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];