我们的业务场景我先描述一下:页面上有两个页面,左边是播放视频,右边是摄像头录制用户视频的画面,播放视频的时候要把视频的声音和麦克风的声音都录制进去。然后合成一个视频,这里合成就不说了,注意碰到的是 视频录制的是iPad中声音正常,iPhone中用户声音基本没有,只有视频的声音。
- 📢这里主要是之前没有设置对音频录制的模式,以下是录制视频的时候,设置音频相关的代码,最关键的是吧mode设置成:AVAudioSessionModeVideoChat。至于其他录制视频代码自己网上搜吧,一大堆。
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:nil];
// 设置麦克风输入最大
[[AVAudioSession sharedInstance] setInputGain:1.0 error:nil];
// 提升音频质量
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVideoChat error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
- 针对其他的mode,读者可以根据自己的需求设置测试,一开始选择用的是AVAudioSessionModeVideoRecording,结果设置之后没起作用,用了AVAudioSessionModeVideoChat之后明显声音大了很多
AVAudioSessionModeDefault
AVAudioSessionModeVoiceChat
AVAudioSessionModeGameChat
AVAudioSessionModeVideoRecording
AVAudioSessionModeMeasurement
AVAudioSessionModeMoviePlayback
AVAudioSessionModeVideoChat
AVAudioSessionModeSpokenAudio
AVAudioSessionModeVoicePrompt