在Linux中驱动声卡

时间:2011-10-15 05:25:08

标签: linux audio

在具有单行输出的基本嵌入式系统扬声器上,在给定时段内将输出摆动为0或1会产生声音。

我想在现代Linux桌面上做类似的事情。简要介绍一下Portaudio,OpenAL和ALSA,对我来说,大多数人都在相当高的水平上做事。没关系,但不是我想要的。

(我之前从未使用Linux上的声音,所以如果教程存在,我很乐意看到它。)

3 个答案:

答案 0 :(得分:2)

实际上,它......有点儿。虽然您可以自己生成波形,但仍需要使用API​​对其进行排队并将其发送到音频硬件;甚至不存在存在直接扭曲音频线的理智方式。此外,您还可以免费获得跨平台兼容性。

答案 1 :(得分:0)

  

[...]带有单行输出的嵌入式系统扬声器,在一定时间内将输出摆动为0或1会产生声音。

听起来很像旧的PC扬声器。你仍然可以在Linux内核中找到它的代码。

  

我想在现代Linux桌面上做类似的事情。

然后你需要AFAIK作为ALSA的驱动程序。在那里你可以找到how to write an ALSA driver上的信息。使用PWM产生声音。

答案 2 :(得分:0)

由于不同公司制作了许多不同的声卡和音频接口,因此没有统一的方法可以对它们进行低级访问。对于大多数声音I / O API,您需要做的是生成PCM数据并将其发送给驱动程序。这几乎是你可以去的最低水平。

但PCM数据与您描述的0-1方法非常相似。只是你也有中间选项。 0-1是1位音频。您可以在现代声卡上找到8,16,24位音频。还有32位和64位浮点格式。但它们仍然相似。