设置音频队列的输入音量
因此,我在网上找不到任何说明我不能执行此操作的内容,但每当我尝试在 iPhone 上执行此操作时,AudioQueueSetParameter 都会返回错误。具体来说,如果我尝试此代码:
AudioQueueParameterValue val = f;
XThrowIfError(AudioQueueSetParameter(mQueue, kAudioQueueParam_Volume, val), "set queue volume");
然后我收到以下错误:kAudioQueueErr_InvalidParameter。 Apple 的文档说这意味着:“指定的参数 ID 无效”。
但如果我在输出队列上尝试相同的代码,它就可以正常工作。有谁知道为什么我可以改变输出音量,但不能改变输入音量?
谢谢
So I can't find anything online that says I can't do this, but whenever I try to do it on the iPhone, errors are returned from AudioQueueSetParameter. Specifically, if I try this code:
AudioQueueParameterValue val = f;
XThrowIfError(AudioQueueSetParameter(mQueue, kAudioQueueParam_Volume, val), "set queue volume");
Then I get the following error: kAudioQueueErr_InvalidParameter. Which Apple's documentation says it means: "The specified parameter ID is invalid".
But if I try the same exact code on an output queue, it works just fine. Does anyone have any idea why I can change the volume on output, but not input?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据Apple 的音频队列服务参考
AudioQueue 参数仅适用于播放音频队列。
要检索有关输入流的信息,请尝试使用 AudioQueue 属性。
According to Apple's Audio Queue Services Reference
AudioQueue Parameters apply only to playback audio queues.
To retrieve information about your input stream try to use AudioQueue Properties.
我想您可以自己将 AudioQueueBuffer 的 PCM 值乘以某个音量系数来产生音量调整。
I presume you could just multiply the PCM values of the
AudioQueueBuffer
s by some volume factor yourself to produce a volume adjustment.