如何在 AudioUnit 或 OpenAL 中分别配置左声道和右声道
Posted
技术标签:
【中文标题】如何在 AudioUnit 或 OpenAL 中分别配置左声道和右声道【英文标题】:How to configure left channel and right channel separately in AudioUnit or OpenAL 【发布时间】:2011-06-24 12:58:04 【问题描述】:我正在生成具有两种不同频率(例如 440hz 和 445hz)的正弦波音调。我需要分别在左声道和右声道播放这个音调。我使用音频队列成功播放了这个音调。音频队列不提供任何选项(任何改变音高的预定义函数)来改变这些音调的音高。所以,我尝试使用音频单元和 OpenlAL,但我在左右声道分别播放声音时遇到问题。谁能帮我解决这个问题。
我所要做的就是在左右声道中分别播放这些音调,并可选择更改这些音调的音高。
注意:正弦波音调是即时生成的,不使用音频文件。
【问题讨论】:
【参考方案1】:这应该很容易。你试过什么?你被困在哪里了?或者你只是想让别人为你做这件事?显示代码...
您是否真正阅读过音频单元编程指南?听起来你还没有,所以你需要先这样做。这会回答你的问题。
然后你可以这样开始:http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html
您只需要配置您的 ABSD(如果我的首字母缩写词正确...音频缓冲区流描述符...即告诉您的各种核心音频对象您使用什么格式的结构)。
因此您需要将它们设置为立体声。
然后,当您填充渲染回调中的缓冲区时,请确保您正在填充两个通道。
【讨论】:
感谢您的帮助。音调发生器示例帮助了我。现在我可以分别在左右声道中生成音调。现在我被困在设置音高上。如何在播放音调时随时更改音调(AudioUnit)?以上是关于如何在 AudioUnit 或 OpenAL 中分别配置左声道和右声道的主要内容,如果未能解决你的问题,请参考以下文章