gpt4 book ai didi

linux - linux如何播放一段音乐(ALSA)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:00 24 4
gpt4 key购买 nike

我最近对“如何在 linux 中演奏音调”很感兴趣,因为我想将数学和音乐联系在一起。我想使用系统调用来执行此操作,因为这样我就不必使用 *.mp3*.wav 等音乐文件。我已经完成了在互联网上进行研究,但只有“如何在程序中播放音乐文件”之类的答案。

我以为在linux上有一个设备文件像leds (/sys/class/leds/.../brightness) 或者usbs (/dev/usb/).但是我的电脑上没有/dev/audio/dev/dsp/dev/sound

所以我想知道 linux 是如何播放音乐文件的,并从那里开始实现我的目标。

我的问题不是“如何在 linux 中播放音乐 [文件]”,而是而是“linux 如何播放音乐 (ALSA)”。也可以回答“如何在程序中播放音调”。

最佳答案

ALSA是一个内核驱动程序,为众多声卡提供支持。它通常由希望与声音系统直接交互的低级应用程序使用。

ALSA 提供了一个 library API你可以使用。看看 documentation一些示例并在正确的方向上提供帮助。

使用 ALSA,您可以访问一个缓冲区,并将样本放入其中,这些样本将由声音设备播放。这是通过 PCM(脉冲编码调制)完成的。使用 ALSA,您需要进行很多配置(如 here 所示)。您要配置 channel 数量(单声道、立体声等)、样本大小(8 位、16 位等)、速率(8000 Hz、16000 Hz、44100 Hz 等)。例如,您可以使用 snd_pcm_writei 将这些示例写入 PCM 设备。

ALSA 库的定义位于 alsa/asoundlib.h 中。如果您使用的是 GCC,则可以使用 -lasound 链接到 ALSA 库。

并非所有音乐播放器都会使用这些低级交互。许多软件都建立在 ALSA 之上,以便为声音系统提供更通用的接口(interface)(甚至与平台无关)。声音服务器的示例包括 JACKPulseAudio .这些声音服务器的优点是它们通常更易于设置和使用,但不能像使用 ALSA 那样提供精细的控制。

关于linux - linux如何播放一段音乐(ALSA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39099540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com