什么原因导致音频输出口吃?

roo*_*ook 2 audio kernel signal-processing driver

有一个非常常见的软件错误导致大约1秒钟的音频连续播放几次,造成一种口吃.我经常在玩电子游戏时注意到这一点.我知道这不是特定于体系结构的,我已经看到它出现在游戏机中,在旧PC中,它发生在5分钟前,当我启动Windows 7时.

我的问题是这种不一致的根本原因是什么?这种不一致是否会影响计算的其他部分?例如,如果调制解调器结束,则传输将被破坏.

Mic*_*sen 9

声音通常使用循环缓冲区输出,然后由硬件和驱动程序处理.这样,您不必每0,02毫秒左右输出一个样本,但可以一次完成更多操作.这也意味着游戏可以花费更多的时间来运行游戏逻辑,而不必经常打断自己以解码新的样本.当游戏完成游戏逻辑中的迭代并更新游戏状态并重新绘制图形时,游戏可以解码更多样本.

如果不能足够快地完成问题 - 这可能是因为突然需要做更多的工作,或者因为其他进程窃取了太多的CPU时间.如果未填充缓冲区,则声卡将继续从缓冲区读取 - 当它读取所有缓冲的样本时,下一个样本是它已经播放的样本.这导致您看到的小循环.