热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

全方位接触 Linux的声音系统

来源: 作者: 时间:2007-10-29 Tag: 点击:

安装库文件

 

许多程序依赖声音库,所以首先你必须安装这些库文件。幸运的是,如果你知道需要哪些库文件,这项任务是相当简单的,只要找到并安装适合你的发行版的软件包就行了。

 

库文件的部分问题在于,你不一定知道使用一个特定程序时的具体要求。有些程序在找不到所需的库文件时,会把一些选项隐藏起来。另一些不提供先决条件的说明,特别是当你从tar.gz格式(tarball)安装,或者是用其它绕过你的包管理系统的方法安装时。

 

然而,当通过RPM或用Debian的包来安装程序时,如果你试图安装的软件依赖于一个你还没有安装的库文件时,包管理工具会发出提示。在此情况下,你需要循着线索找到那个库。(有些包管理工具,例如APT,会自动帮你做这件事)

 

值得稍微详细地介绍一下Gentoo。由于它采用的是“全部自己编译”的方式, Gentoo让你在程序中明确包含或排除对特定音频库文件的支持──至少对于在编译时支持这些选项的程序如此。 /etc/make.profile/make.defaults 文件包含了在可能情况下应该用到的所有库文件的清单,每个占一行。

 

假如你知道你不想用到某个库,比方说SDL,除非绝对必要,你应该在上述文件里面注释掉sdl这一行。你也可以在每次运行emerge时个别改动,通过加入库的名称以提供支持,或者在库名称前面加个“-”(比方像这样 -sdl)来忽略对这些库的支持。然而,这些选项只会在当这些库被列为软件包的“可选”(optional)库文件时才有效。

 

例如,如果软件包必需SDL才能正常工作时,在emerge命令中指定 -sdl选项将不起作用。你应该小心这些问题,因为可能造成程序的选项出现或消失。在某些情况下,它们还会影响到程序的音频质量。如果一个库比起另一个来,能更好地在你的硬件和程序上工作,你的选择就会影响到声音输出的质量。

 

为了得到这种控制权,在传统的二进制Linux发行版上,你必须用源码重新编译软件包,这么做要么干脆绕过包管理系统,要么用你喜欢的编译选项产生定制的软件包。

 

有些库提供了设置各种选项的配置工具。例如,aRts让你选择用ALSA、OSS还是EsounD(很快会更详细介绍)。你可能要看看库文件的文档来了解它提供了哪些选项。

 

测试和使用声音工具

所有的库文件和驱动程序安装之后,就可以着手测试声音了。做这件事,最好从最简单的工具入手 ── 即那些不依赖于驱动程序的。然后,再逐步向“上”测试用到不同的库文件的其它工具。

 

play

play命令直接通过OSS驱动(或者ALSA对OSS的兼容层)播放声音文件。例如,输入 play test.wav 来播放 test.wav。除了用 cat 直接发送一个声音文件到声音设备文件(这将极大地扭曲声音)之外,这是测试你的声音系统的功能和可操作性的最简单办法了。如果你使用了ALSA但是没能成功编译或加载OSS兼容支持,play命令将不起作用。

 

aplay

aplay在ALSA中的作用等同于play,用法也完全一样。如果你用ALSA,两个工具都应该试一下。如果aplay能用而play不行,通常表明你没能成功编译或加载OSS兼容支持。

 

esdplay

这个命令与play,aplay非常类似,只是它通过EsounD播放文件。

 

这些程序都只播放相对简单的文件,例如.wav文件。它们不能正确处理MP3、Ogg Vorbis或其它复杂的文件类型。

 

理想情况下,你能以普通用户的身份使用这些程序。然而,如果你在OSS设备文件上的权限不正确,你可能只能以root身份播放声音。果真如此,检查一下你的设备文件的权限然后再试试。

 

这些程序都有对应的录音程序:rec,arecord和esdrec。你应该能够用这些命令来录制一个声音文件。取决于你的混音器设置,生成的文件可能完全是空白的,即使你已经给了声卡一个适当的输入。

 

谈到混音器(mixer),这里需要注意一下,特别当你使用ALSA的时候。按照默认设置,ALSA启动时所有的输出频道都是静音的。因此,你可能能播放一个声音文件,但是却什么都听不到(播放程序可能暂时“冻住”了,但过了一会儿当文件静悄悄地播放完,又“解冻”了)。有很多种混音器程序,包括mixer,amixer,alsamixer,kmix以及gnome-volume- control。前三个是文本界面的,其余是图形界面的。amixer和alsamixer仅使用ALSA接口,其它的使用OSS接口或者两者都支持。图 2显示了gnome音量调节程序。

 

你应该确保你所需的频道解除了静音并且音量调节滑块设置在恰当的水平(你需要通过试验才知道何谓“恰当”)。“Mater”和“PCM”选项对于放音至关重要。如果想播放音乐CD,你可能还需要设置CD选项。

 

为了录音,通常你必须对“Mic”(麦克风)或者“Line”选项解除静音。许多声卡提供了额外的选项,可能很重要,也可能无关紧要。例如,假如你只有传统的2个喇叭,环绕声的音量选项就不重要,然而如果你用了全套的环绕声系统则另当别论。

 

当重新启动计算机时,混音器的设置将被重置。为解决这个问题,你可以用一个能从文本文件中读入音量设置的文本界面的混音器。在本地的启动脚本中,如/etc/rc.d/rc.local,加入对这个程序的调用,或者从一个SysV风格的启动脚本中设置调用。

 

对于OSS来说,mixer程序是个好选择,但是你要从试验中找出最好的选项。详情请查看manpage。对于ALSA,一个捷径是用alsactl。这个程序能把当前的混音器设置存到一个文件中或者从文件中读出来。当你用自己喜欢的混音程序调节满意之后,用root身份输入 alsactl store 。这个命令将把混音设置储存到 /etc/asound.state 中。此后,你就能在一个启动脚本中调用 alsactl restore 来恢复设置(有些发行版的ALSA启动脚本已经包括了这个功能)。

 

除了简单的放音、录音和混音程序之外,还有许多更为复杂的音频工具。例如,xmms 是播放Ogg Vorbis和MP3文件的常用程序,xine是播放MPEG流媒体的工具,当然,还有许多游戏也播放声音。事实上,声音已经用在许多你通常意识不到会放音的程序中。例如,大多数桌面环境,像KDE和GNOME,都能把声音和特定事件联系起来,比如说启动一个程序或控制台铃声。

 

设置 KDE/aRts 选项

许多应用程序和库提供了与声音有关的选项。这些选项你让你选择声音如何输出(直接通过驱动程序还是通过库),或者提供更精细的选项(例如时序选项)。如果你安装了多个声卡,你也许能选择想用哪一个。尽管将所有应用程序的所有选项罗列出来是不可能的,一些例子能让你建立起有哪些是能做的的概念。

 

我们来看看设置 KDE/aRts 选项和 XMMS 的选项。

 

KDE让你通过控制中心来调节输出选项(输入kcontrol命令或在菜单里选择)。这些控制实际上是设置aRts──KDE的声音库。这些选项位于控制中心的“声音和多媒体,声音系统”部分,见图3(有些发行版在名称上可能稍有不同)。

 

“General”标签让你设置有关网络可达性、CPU使用率已经自动挂起(auto-suspend)之类特性(当驱动程序不支持多线程,而且你也无法告诉aRts使用一个低层的多线程库时,最好是启用最后那个特性)。你也可以点击“Test Sound”和“Test MIDI”来测试aRts的设置(后者不是在每种声卡上都起作用)。

 

“Hardware”标签设置低层的选项。要特别注意的是“Select the Audio Device”按钮。你可以告诉aRts在几种低层的驱动和库中选择哪一个。典型的选项包括auto-detect,ALSA,OSS,Threaded OSS和EsounD。在不同的系统上,列出来的内容会有所不同,取决于安装的驱动程序和KDE编译时的选项。

 

默认设置通常是auto-detect,而通常也是可以接受的。然而,如果KDE应用程序(或其它使用aRts的程序)的声音质量有问题,或者KDE的声音特性与其它程序发生干扰,你可以试验其它选项。你也可以设置额外选项,例如取样率和质量。再一次,默认选项通常是可接受的,但是出问题的时候你也调整。

 

设置 XMMS 选项

作为一个专门的多媒体应用程序,与多数程序相比,XMMS提供了更多的音频选项。然而,这些选项并非完全是显而易见的,在 XMMS 菜单条上按鼠标右键并选择“Option,Preferences”,结果就是图4显示的 XMMS “Preferences”对话框。

 

XMMS 最重要的选项是“Output Plug-in”按钮,使你你选择输出驱动。通常你能在ALSA、OSS和EsounD之间作选择,然而准确的选项依发行版和安装的输出插件的不同而不同。

 

一旦你选择了要用的输出方式,你还能点击“Configure”机型微调。它会带来一个插件特定的对话框让你来设置其它特性。例如,用 ALSA 插件,你能选择要用的音频设备、启动或停止Mmap模式等等。

 

有时候,这些选项会对你听到的声音质量造成很大的影响,所以出现问题时,你应该尝试不同的选项。




相关文章:
totem-xine 缺少解码器问题(感谢阿朱少年侠客)
audacious支持ape和cue了
在Linux下面玩neogeo游戏
Linux下面玩街机
在Linux下面玩PS1游戏
H.264与MPEG4区别
mplayer两个问题
Amarok中文乱码问题的解决
让Amarok支持RealyPlayer的所有媒体格式
在Linux上面装上了MPlayer
linux 视频聊天
二个Linux系统常青树游戏
想在Linux下玩游戏可以玩Extreme Tux Racer
Songbird集播放器与浏览器于一身发布0.4版
Linux 2D 游戏收集
用XMAME模拟器在Linux上玩游戏
如何把spca5xx驱动安装到Redhat9上
Linux下使用摄像头
mplayer解码
Linux中安装Alsa声卡驱动的一些经验心得
关于MPlayer安装过程中的问题及解决方法
Linux声音系统和PulseAudio简介
在Linux操作系统下将CD转录为WAV的方法
Linux系统下简洁而朴实的Mesk音乐播放器
Linux操作系统下的几个小游戏模拟器
Linux操作系统中的Flash录制工具Vnc2swf
Ubuntu上的三个赛车游戏(组图)
全方位接触 Linux的声音系统
Mplayer完美安装手册
解决ubuntu 7.04(10)识别了声卡 喇叭显示正常 没