【问题标题】:Setting kAudioSessionMode in Apple's SpeakHere example causes big drop in volume. Any workarounds?在 Apple 的 SpeakHere 示例中设置 kAudioSessionMode 会导致音量大幅下降。任何解决方法?
【发布时间】:2012-11-10 05:41:42
【问题描述】:

每当我使用 VoiceChat 模式时,我一直在自己的应用程序中遇到音频太低的问题,所以作为一个白痴检查,我下载了 Apple 的音频单元编程示例代码 (SpeakHere) 并将 VoiceChat 模式添加到那个应用程序。事实证明,问题也在那里发生:在该模式下运行会导致所有内容都达到所需音量的 20% 左右。

我在 SpeakHereController.mm 的第 267 行添加了这段代码,就在设置 PlayAndRecord 类别之后:

    // set mode -- this results in audio being too soft
    UInt32 mode = kAudioSessionMode_VoiceChat;

    error = AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(mode), &mode);
    if (error) printf("couldn't set audio session mode!");

我正在使用带有 RemoteIO 的 VoiceChat 模式,以便在使用免提电话时获得回声消除; VoiceProcessingIO 可以工作(有点),但是旧 iPhone (3GS) 的性能非常糟糕,无法使用——这就是我改用 RemoteIO 的原因。我已确认扬声器路线是正确的。我什至尝试过设置测量模式并手动增加增益——我没有发现任何改进。

关于在使用 AudioSession 模式时防止大音量下降有什么建议吗?

【问题讨论】:

    标签: ios avaudiosession


    【解决方案1】:

    事实证明,当 VoiceChat 模式设置为确定增益、回声消除等的最佳设置时,使用 /current/ 音频路由。这意味着,如果您要设置特定路由,则需要在设置模式之前执行此操作 - 而不是之后。

    按此顺序为我解决了音量问题:

    • 设置 PlayAndRecord
    • 设置到扬声器的路线
    • 设置模式
    • 在我的音频单元中使用 VoiceProcessingIO
    • 保持较低的硬件采样率 (8k) 以在 3GS 等旧设备上保持良好的性能

    【讨论】:

    • Apple 的 SpeakHere 示例的音量也大幅下降。要增加此样本的音量,我该怎么办?
    • 你能详细说明你使用的iOS版本和iphone型号吗?
    • @user657429 这是 iOS 6,使用各种设备(iPhone 5、iPod touch、iPhone 3GS)。
    • 终于找到和我有同样问题的人了。不幸的是,这并不能解决我的问题。
    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多