蓝牙协议有很大延迟本身就是个认识误区。
音频设备有延迟,主要原因是音频数据量极大,音频生成后先要在发送端编码处理,然后发送,关键在接收端,为了保证速率不稳定的传输下能流畅播放,会设置一个缓冲。
这样子下来,最少会有32ms延迟,而且这也是缓冲短到几乎不现实的情况,典型实用方案下延迟在100ms左右,这是传输256-328kb/s的数据并缓存播放的情况。
而手柄操纵的上传,数据量极小。我抓过X1的USB帧,而且根据网上文章看,Xbox wireless的数据帧负载结构和USB几乎一致。手柄操作数据每帧负载只有44字节,刷新间隔8毫秒,也就是每秒125次,44kb/s,多大点事。即使是通过手柄传音频,也可以将操作数据夹带在手柄回传的ACK里面。
44kb/s与256kb/s对比,的确可以将32ms的延迟缩到5ms左右,数据基本是符合预期的。