ALSA定时器接口是干什么用的?

What is the ALSA timer interface used for?

我很难弄清楚 ALSA 定时器接口到底有什么用。

documentation很瘦:

Timer interface is designed to use internal timers in sound hardware, but it can be driven with any timer.

在 MS-DOS 和 16 位 Windows 的 旧时代,没有 API 到 运行 的好高频率的系统定时器。所以一些声音芯片组实现了一个单独的硬件定时器,这样多媒体应用程序就可以使用这样的定时器。

ALSA API 有定时器接口允许使用这部分硬件。

现在,这个界面已经没有用了。

"Nowadays, this interface is no longer useful." 我不确定此声明的有效性。我试图使用 dshare 插件来创建具有 16 个通道的 TDM 音频帧,这个计时器让我发疯,因为没有它你无法使用插件。事实上所有插件都使用定时器。至少 Dshare/Dmix/Dsnoop 个插件使用计时器。 计时器似乎在播放开始时设置了一个计数器(unsigned int)来及时跟踪帧。本质上,它是一个 运行 计数器,任何播放都将与之同步,应用程序计数器和计时器(计数器)之间的差异将为您提供仍需要播放的样本数。