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

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

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

感谢您的帮助。

【问题讨论】:

    标签: ios audio avfoundation


    【解决方案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】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-25
        相关资源
        最近更新 更多