@computer00 当我们把Type I format type Descriptor的bSamFreqType字段设置为0x02之后。代表设备能支持2种频率的音频格式。
如下:
/* Type I format type Descriptor */
0x0E, /* bLength *///原值0X0B
0x24, /* bDescriptorType:CS_INTERFACE */
0x02, /* bDescriptorSubType:FORMAT_TYPE */
0x01, /* bFormatType:FORMAT_TYPE_I */
PLAY_CHANNELS, /* bNrChannels */
0x02, /* bSubFrameSize */
0x10, /* bBitResolution */
0x02, /* bSamFreqType : 0 continuous; 1 discrete */
PLAY_RATE_LO,
PLAY_RATE_MD,
PLAY_RATE_HI, /* Sample Frequency */
PLAY_44_LO,
PLAY_44_MD,
PLAY_44_HI,
这个代表设备能支持PLAY_RATE(我这里是48K)和PLAY_44(这里是44.1K)两种频率的播放。就不需要上位机软件对44.1K的音频文件进行SRC(采样频率转换)。
但是这个时候上位机应该会发送一个UAC类的类请求SET_CUR告诉下位机,当前播放的文件是什么样的频率。可是我没有收到这个数据是为什么。。。
而且我用BUS HOUND直接发SET_CUR是可以接受到的。。。但是用酷狗播放器却收不到。。。圈圈能帮我简单分析下不? |