如何解决录音时播放音频音量会降低
我使用audiounit录制语音,并使用audioqueue播放音频数据。当我设置时:
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
播放的音频的音量将非常低。但是当我设置时:
[session setCategory:AVAudioSessionCategoryMultiRoute error:&error];
尽管音量将是正常的。但是从iOS麦克风输出的音频数据将不会相同。使用前者设置时,音频数据长度将为4096,但后者将输出长度,分别为3760和3764。这在我编码音频数据时会导致崩溃。
我发现解决方法是说我应该先打开音频播放器再打开录音机,然后问题才能解决。不幸的是,我必须先打开录音机。因此,我不知道如何设置音频会话,是否可以使音量和音频数据具有相同的长度。
解决方法
3760-3764是由于将采样率从48k重新采样到了44.1k。
使用圆形/环形缓冲区/ fifo避免编码问题(例如,仅在缓冲区/ fifo中已经有足够多的采样时,才总是从缓冲区/ fifo中取出4096个样本)。
此外,在启用AudioSession之前,请尝试设置您的首选采样率。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。