USB AUDIO设置采样率遇到个问题,求做过的大佬帮忙。
做的USB声卡,再把采样率修改到44.1K时,进行播放,感觉声音有点不对,然后有个假想,全速双通道44.1K,16位每帧传输数据是44100*2*2/1000=176.4,这个有小数,不像48K,32K都是整数,听别人说44.1K传输十次要传输一次180,但是在修改程序的时候,修改了两天还是没修改对,现在想求一份44.1K采样率的USB扬声器。希望大佬们帮帮忙。没修改对的原因就是在传输180的时候,DMA的传输长度也要跟着修改,但是一修改声音就出错了。不知道什么原因导致的。试一下在传输完成中断的地方修改传输长度
current_speaker->data_size = current_speaker->injection_size;
read_length = current_speaker->packet_length;
#if USB_AUDIO_CONFIG_PLAY_USE_FREQ_44_1_K
if(current_speaker->node.audio_description->frequence == USB_AUDIO_CONFIG_FREQ_44_1_K)
{
if(current_speaker->injection_44_count < 9)
{
current_speaker->injection_44_count++;
}
else
{
current_speaker->injection_44_count = 0;
current_speaker->data_size = current_speaker->alt_buf_half_size;
read_length = current_speaker->packet_length_max_44_1;
}
}
#endif /* USB_AUDIO_CONFIG_PLAY_USE_FREQ_44_1_K*/
页:
[1]