我在 Windows 8.1 中使用 HIDAPI 从 HID 设备中读取音频流。该流发送由 259 个字节组成的 ADPCM 数据,其中前 12 个包为 20 个字节,第 13 个为 19 个字节。问题是 HIDAPI 总是给我 20 个字节(+1 个字节的报告 ID),而不是 19 个字节。HID 的音频部分在 Windows 下本机不支持,但正在使用一些第三方库为 linux 工作,并且直接在 Ubuntu 中捕获 HID 数据会给出正确的数据长度。我怎样才能解决这个问题?
编辑:我看到在设置 hid_device* 时,一dev->input_report_length = caps.InputReportByteLength;
开始就将调用设置为 21,因此无法随时间更改。尽管如此,我的设备每 13 个数据包仅发送 19 (20) 个字节的数据。这可以在运行时动态更改吗?