首页 文章

使用libusb在UCG102上设置采样率

提问于
浏览
1

我正在使用libusb与UCG102(Guitar Link)USB设备通信,并且在使用同步控制请求设置采样率时获得-9(LIBUSB_ERROR_PIPE,这意味着不支持参数) . 以下是LIBUSB记录的基本请求详细信息,您无法看到实际采样率,因为它按照规范在3字节缓冲区中:

03-02 14:33:13.173: I/LIBUSB(9480): bmRequestType=22, bRequest=01, wValue=0100, wIndex=0084, wLength=0003

用于设置sampleRate值的代码

byte[] param2 = new byte[3];

param2[2] = (byte)(sampleRate >> 16); //0x44;
param2[1] = (byte)(sampleRate >> 8); // 0xAC;
param2[0] = (byte) (sampleRate & 0xff); //0x00;

相同的代码适用于许多其他USB音频设备 . 然后我继续做同步音频(UCG102上的哪种作品 - 但不是我想要的速度) .

我应该指出,已经从设备描述符中选择了采样率,因此我知道该设备支持它 .

所以问题是 how can I set the sample rate ?在此之前是否有我需要做的事情(是的,我已经分离了所有其他接口,然后声称我想要的那些) . 有些设备是否期望采样率以USB audio规范以外的其他方式表示?

如果你不能直接回答,也许有人可以指向我的Windows或Fedora库/应用程序,它将与我的USB设备通信(出于音频目的)并注销所有LIBUSB调用,以便我可以看到它工作(或开源所以我可以将自己的调试放入其中) .

非常感谢您的协助 .

1 回答

  • 1

    事实证明,您无法通过输入或输出 endpoints 上的设置请求执行此操作 . 您可以通过在界面上选择适当的备用设置来有效地设置输入采样率,因为每个备用设置只有一个采样率 . 在输出上,每个备用设置有三个采样率,它只是适应出现的速率 . 这不是典型的USB Audio 1.0行为,但它确实有效 .

相关问题