iOS 录音同时播放音频,真机调试时失败问题解决方案。

1.在做录制歌曲的功能的时候,遇到了模拟器正常,但是真机测试时不能完成合成的功能,解决方案如下:

在设置AVAudioSession的对象属性时,其中要这样设置:

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];

这样设置虽然解决了录音的同时可以播放音频,但是如果没有接入音频设备的时候,音频的播放音量特别小,这是因为将category设置为AVAudioSessionCategoryPlayAndRecord时,默认的声音输出为手机听筒。所以为什么调节音量的时候,就算调到最大,但外放音量还是特别的小。那么这个问题应该怎么解决呢?

遇到问题,就是我们提高的机会。经过不懈的努力,终于找到解决的方法。话不多说,代码如下:

查找资料后,有两种方法。

方法一:修改category的默认行为

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];

方法二:OverrideOutputAudioPort 方法

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];

[audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];


注意:这样设置了可以指定没有外置设备的时候使用扬声器进行播放音频,但是如果接入音频设备后,音频设备是没有声音的,这是因为你设置限定了输出方式。这时候怎么办?判断呀!判断有没有接入外置设备,有的话怎样怎样,没有的话怎样怎样(此处省略20000行代码)。

这样基本上就解决了,边录音边播放音频的功能。文笔粗糙,看官留情。不足之处,还请指教。

这是目前研究到的水平,后期会继续完善补充。也可能推翻重写。能解决问题就好。

你可能感兴趣的:(iOS 录音同时播放音频,真机调试时失败问题解决方案。)