【问题标题】:Setting sample rate on UCG102 using libusb使用 libusb 在 UCG102 上设置采样率
【发布时间】:2013-02-17 08:54:11
【问题描述】:

我正在使用 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 上工作的那种——但不是我想要的速率)。

我应该指出,采样率是从设备描述符中选择的,所以我知道这个设备支持它。

所以问题是如何设置采样率?在此之前我需要做些什么(是的,我已经分离了所有其他接口,然后声明了我想要的接口)。某些设备是否期望以不同于 USB audio 规范建议的方式表示的采样率?

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

感谢您的帮助。

【问题讨论】:

    标签: android audio usb audio-streaming libusb


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2013-08-10
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多