我想在录音过程中手动触发播放一些提示音,并且我想录制提示音。所以我希望在录制音频期间在扬声器而不是接收器中大声播放警报。
我使用 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;
如果我停止录音,并手动触发播放提示,它会在扬声器中播放。 但是在录制过程中,当我手动触发播放警报时,没有任何反应。 这里有什么问题吗?或者录音时是否可以在扬声器中播放声音?
最佳答案
只需更改类别如下即可
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];
关于iOS 如何在录音时在扬声器中播放提示音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24731601/