iOS - 使用 AVFoundation 录制声音后 iPhone 声音级别低

Posted

技术标签:

【中文标题】iOS - 使用 AVFoundation 录制声音后 iPhone 声音级别低【英文标题】:iOS - iPhone sound level low after recording sound using AVFoundation 【发布时间】:2012-08-23 23:40:52 【问题描述】:

我有一个我正在开发的应用程序,它的一个功能是通过iPhone microphone 录制声音并能够回放给我。

问题:在我录制之后,比如说我说话,播放级别非常低。现在我确实从AudioToolbox 切换到AVFoundation,这发生在切换之后。我需要为AVFoundation 编写音量参数吗?我在documentation 中没有看到任何内容。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我已经解决了这个问题。在 AppDelegate.m 中,didFinishLaunchingWithOptions

中有以下内容
[[AVAudiosession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: &setAudioError]; 

if (setAudioError)  NSLog(@"error setting audio: %@", setAudioError);  

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (
                         kAudioSessionProperty_OverrideAudioRoute,
                         sizeof (audioRouteOverride),
                         &audioRouteOverride);

这里的重要部分是它不起作用,因为我最初有 AVAudioSessionCategoryPlayer error:&setAudioError

一旦我将其更改为“PlayandRecord”,我就没有问题了。

【讨论】:

【参考方案2】:

在录制音频或配置 Record 或 PlayAndRecord Audio Session 时,iPhone 从使用扬声器(位于底部)切换到使用较小的耳机(靠近前顶部),从而产生较低的音量。

您的应用可以通过将音频会话 kAudioSessionProperty_OverrideAudioRoute 属性设置为 kAudioSessionOverrideAudioRoute_Speaker 来覆盖此默认设置。有关详细信息,请参阅 Apple 的音频会话 API 文档。

【讨论】:

我已经尝试使用上述建议,但由于某种原因它不起作用。【参考方案3】:

在“设置”中开启飞行模式。你的声音会高很多。

【讨论】:

以上是关于iOS - 使用 AVFoundation 录制声音后 iPhone 声音级别低的主要内容,如果未能解决你的问题,请参考以下文章

Swift IOS 使用 AVFoundation 录制视频和音频

在 iOS 中使用 AVFoundation 切换相机后视频录制不起作用

Objective-C:在 iOS 上使用 AVFoundation 录制视频时静音/取消静音

AVfoundation无法在iOS 5中录制音频

iOS开发进阶 - 用AVFoundation自定义视频录制功能

有没有办法在不使用 AVFoundation 框架的情况下在 iOS 中录制音频?