Linux 音频 API 指南
天不可测
由于历史的原因,在 Linux
环境下有多种API系统可用于声音编程。但没有合适的指引就难以找到合乎自己需要的体系。这里是一个指引,是由Lennart
Poettering <mzoybt (at) 0pointer (dot) net>所写(参见:Homepage of Lennart
),
目的就是带你走出这个密林。
最简单的指引莫过于问自己:“我想(用 Linux Sound
API)做些什么?”。下面就是答案:
我想写一个类似于媒体播放器的软件!
那就用 GStreamer。除非你只想基于KDE来编程,那么,你可以选择使用Phonon。
我想在自己的应用程序中加入事件声音!
使用 libcanberra,并根据XDG
Sound Theming/Naming 规范安装声音文件。如果你只基于KDE,则可以使用KNotify,但它的着重点有所不同。
我想做专业的音频编程,包括硬盘录音、音乐合成、MIDI界面等!
使用 JACK 或者完整的ALSA 界面。
我想基础的PCM音频播放和捕捉!
使用 safe
ALSA 子集。
我想在游戏中加入声音!
如果是全屏幕的大型游戏,使用SDL的声音API。如果是简单的游戏,只用到基础的用户界面例如Gtk+的,使用 libcanberra
我想写一个混音器/音量控制软件!
这要根据你想在哪一个层次提供直接的支持:如果你想支持增强的桌面软件混音器,使用 PulseAudio 音量控制
API。如果你想支持硬件混音器,使用ALSA混音器API。
我想写一个支持
plumbing layer的软件!
使用 完整的 ALSA体系。
我想写一个嵌入式的音频软件!
从技术使用性角度而言safe ALSA子集是一个好的选择,但基于你实际的情况也可以使用其它API。
你想了解更多关于这些API的不同之处吗?
GStreamer
GStreamer
是一个Linux桌面媒体流系统的事实标准。它支持音视频流的编解码。可以基于该API实现从简单的音频文件播放到网络流媒体配置等大范围的应用。
GStreamer支持多种编解码器和音频后端。GStreamer显然不适用于基本的PCM音频播放或者低延时/实时应用场合。GStreamer是可
移植的,并不限于仅能在Linux上使用。它支持的音频后端包括ALSA、OSS、PulseAudio等。
[API
Reference]
libcanberra
libcanberra
是一个抽象的事件声音API。它是XDG
声音主题和命名规范
的实现。虽然libcanberra是GNOME的一部分,但它并不依赖于GNOME/Gtk/GLib
,因此可以用于其它桌
面环境。它除了提供简单的界面用于播放声音文件之外,还提供了缓冲机制(适用于基于网络的瘦客户机)和允许传递多种元数
相关文档:
sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际
上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
Sort命令将逐行对文件中的内容进行排序,如果 ......
1.rpc服务需rsh的支持,一般情况下rsh已安装。rpm -qa rsh查看。
2.右键另存为http://heanet.dl.sourceforge.net/sourceforge/rstatd/rpc.rstatd-4.0.1.tar.gz下载rpc.rstatd-4.0.1.tar.gz。
3.执行以下命令解压和安装
tar zxvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1
./configure //配置
make&nb ......
关于Windows启动过程介绍的文章可谓多如牛毛,而对于Linux的介绍却是凤毛麟角。凡是曾经使用过Linux的用户可能都会注意到,当计算机启动时,屏幕上会出现很多信息。一般情况下,这些信息我们可以通过以下的命令看到:
cat /var/log/dmesg | more
这些信息究竟有什么含义?这个问题看起 ......
一、内核启动完后,首先运行/linuxrc
/linuxrc 内容:
#!/bin/sh
echo "mount /etc as ramfs"   ......