1
1
无论如何,正因为如此,三个以上的缓冲区没有多大用处(两个也需要仔细考虑)。您不需要更多缓冲区。但是,缓冲区应该比计算出的每帧标称采样数稍长,并且端点描述符应该包含此扩展长度。 总是 打开并仅在USB帧开始时(或与USB SOF同步的任何其他事件)切换缓冲区。 当USB主机想要从您的端点读取数据时,您的设备必须返回当前读取缓冲区中实际存在的样本数。不多不少。 因此,不存在跑输的机会。当之前读取的缓冲区未完全填满时,您只需向主机发送较少数量的样本,主机的任务是以任何合适的方式处理时钟漂移和重新采样。你 另一方面,担心超支。若SOF频率和ADC的采样率相比太低,你们可以在SOF到来之前填满整个缓冲区,最终并没有地方进行下一个采样。简单的解决方法是使您的缓冲区比计算的标称速率至少长几个样本。那么你应该是安全的,否则其他地方的东西可能已经坏得多了。 您可能担心的最后一个问题是,当SOF正常运行时,主机不会向您的端点发送读取请求。好的,在这种情况下,覆盖旧的缓冲区不会造成太大的伤害,因为主机此时显然对数据不感兴趣,而缓冲东西——从而增加延迟——可能弊大于利。 |
Una Persona Normal · 在滑块上选择特定值时播放声音 2 年前 |
ESB691 · 停止使用javascript循环音频,但完成播放迭代 2 年前 |
loltrox · Python中播放和暂停音频的理想模块是什么? 2 年前 |
Demetris · 如何在音频播放器中传递React道具? 2 年前 |
Uplink001 · SceneKit:定位音频不起作用 6 年前 |
Belphegor · WAV文件中的“ChunkSize” 6 年前 |