xuqingli 发表于 2019-10-14 16:39:26

USB AUDIO设置采样率遇到个问题,求做过的大佬帮忙。

做的USB声卡,再把采样率修改到44.1K时,进行播放,感觉声音有点不对,然后有个假想,全速双通道44.1K,16位每帧传输数据是44100*2*2/1000=176.4,这个有小数,不像48K,32K都是整数,听别人说44.1K传输十次要传输一次180,但是在修改程序的时候,修改了两天还是没修改对,现在想求一份44.1K采样率的USB扬声器。希望大佬们帮帮忙。没修改对的原因就是在传输180的时候,DMA的传输长度也要跟着修改,但是一修改声音就出错了。不知道什么原因导致的。

butterflyspring 发表于 2019-11-28 22:06:01

试一下在传输完成中断的地方修改传输长度


      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]
查看完整版本: USB AUDIO设置采样率遇到个问题,求做过的大佬帮忙。