gpt4 book ai didi

asio - 如何确定哪个 channel 是左、右等?

转载 作者:行者123 更新时间:2023-12-03 00:55:42 36 4
gpt4 key购买 nike

所以,我决定在我的程序中使用 JAsioHost ( https://github.com/mhroth/jasiohost ) 通过 ASIO 输出音频。

与 ASIO 的交互是通过 AsioDriverListener 的实例完成的。界面。 ASIO 主机将调用其 void bufferSwitch(long sampleTime, long samplePosition, Set<AsioChannel> activeChannels)每次它想要播放新样本时的方法。如果我想输出单声道声音,我只需在 activeChannels 中的所有 channel 中写入相同的数据。 .但是,如果我想让事情变得更复杂,因此需要知道确切的 channel 配置怎么办?

在简单的测试 stub 程序 (http://pastebin.com/sC870VJR) 中,activeChannels set 打印如下:

#{#<AsioChannel Output Channel 0: HD Audio output 1, ASIOSTInt32LSB, group 0, inactive>
#<AsioChannel Output Channel 1: HD Audio output 2, ASIOSTInt32LSB, group 0, inactive>}

所以我可以知道每个 channel 的索引。问题是 - 如何确定哪个 channel 是真正的左,右,中等等?..或者没有办法,我应该把它留给用户,谁会手动告诉他们的位置?

最佳答案

ASIO 的目的是为多声道音频接口(interface)提供高性能抽象。

在它设计的领域——也就是说专业音频应用—— channel 数通常远高于两个,并且任何一对 channel 是否是立体声总线——以及哪个 channel 是哪个——实际上取决于用户如何连接他们接口(interface)的输入和输出。

ASIO API 不提供检索 channel 路由信息的方法 - 例如名称标签或它们连接到的位置。甚至 - 通常情况下 - 音频接口(interface)的控制面板软件确实具有此功能。
这一直是 ASIO 长期存在的缺陷。

使用一组 channel (例如立体声或 5.1 总线)纯粹是惯例。至少在立体声应用中,左声道通常是顺序对中编号较低的声道。

如果您使用的是 MacOSX,CoreAudio 确实提供了名称 channel 和含义音频路由数据。由于 ASIO 作为应用程序和 CoreAudio API 之间的薄包装器,您可以获得它。

关于asio - 如何确定哪个 channel 是左、右等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174968/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com