iphone - AudioQueueNewInput 降低 AVAudioPlayer 的播放音量

标签 iphone

我正在使用 Stephen Celis 的 SCListener 类来记录 iPhone 麦克风音频级别。我还通过使用 AVAudioPlayer 播放音频。例如,用户按下“播放”以开始在后台播放声音,然后可以选择向麦克风吹气以播放其他更短的声音。代码一切正常,在应该播放的时候播放所有声音,但是,当您开始使用 SCListener 收听时,AVAudioPlayer 音量大大降低。我已将罪魁祸首缩小到 SCListener 源代码中的这一行:

AudioQueueNewInput(&format, ListeningCallback, self, NULL, NULL, 0, &queue);

我绞尽脑汁,不知道如何在执行此行后将播放音量保持在最高水平。我也和史蒂芬·塞利斯谈过,他不知道发生了什么事。我认为 iPhone 在使用麦克风时可能会降低输出音量,这样就不会引入反馈,但似乎应该有一种方法可以禁用它。

总结:

  1. 开始使用 AVAudioPlayer 播放长音频文件 - 100% 音量(大声)。
  2. 启用 SCListener 并开始监听(调用 AudioQueueNewInput)。
  3. AVAudioPlayer 声音的输出音量大幅降低
  4. 调用 [[SCListener sharedListener] stop] 来处置队列
  5. AVAudioPlayer 声音恢复更高的播放音量

有人见过这样的事情或者对如何保持更高的播放音量有任何想法吗?我已将音量参数明确设置为 1.0f,以确保增益处于最高水平。

最佳答案

你可以试试这个:

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

关于iphone - AudioQueueNewInput 降低 AVAudioPlayer 的播放音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/892695/

相关文章:

iphone - 你能安装一个带有隐形图标的 iPhone 应用程序吗?

iphone - iPhone 的 XCode 宏

iphone - iPhone上的 "X would like to use your current location"背后的规则是什么?

具有正面或负面属性的 iOS UIButton

iphone - iphone sdk如何在电话通讯过程中播放DTMF音频文件

iphone - 将 UISlider 连接到 fontSize

iphone - 自动隐藏 UINavigationBar 和 UIToolbar

iphone - 关闭键盘不工作

iphone - Objective-C 约定 : When to use For and when to use With

iphone - iOS AudioServicesAddSystemSoundCompletion回调发生1秒延迟