📄 sound-playing-howto-2.html
字号:
<P>
<P>
<H3>maplay 1.3b</H3>
<P>这是非官方版版本(换句话说,不是原作者所作的 <CODE>maplay</CODE> 1.2,
所以它能跑比较低 CPU 负载. 它主要藉由使用事实上工作在 SPARC
以外的其他平台上的 u-law output 来达成.
注意的是它内定使用 u-law output,
所以声音品质是比较差的.
<P>此改修改版是 Orlando Andico 所作
(<CODE>orly@gibson.eee.upd.edu.ph</CODE>).
<P>这可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay-1.3b-Linux.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay-1.3b-Linux.tar.gz</A>.
<P>
<P>
<H3>maplay3</H3>
<P>这播放程式是从 <CODE>maplay</CODE> 1.2 改编来的.
它加入支援 MPEG Layer 3 声音流.目前它似乎有些臭□在播放时
(你可以听到一些刺耳的杂讯). 你可以调整[twid.dle]选项来解决这个问题.
<P>此修改版是 Timo Jantunen 所作.
(<CODE>timo.jantunen@hut.fi</CODE> 或 <CODE>jeti@cc.hut.fi</CODE>).
它是可以免费的使用,但用来赚钱则不被允许.
然而,我完全不确定这版权的有效性,因为原有的 <CODE>maplay</CODE> 是在
GNU General Public License 下,而 GNU General Public License
是不许改编版本能有不同的版权宣告.
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay3.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay3.tar.gz</A><P>
<P>
<H3>splay</H3>
<P>这 <EM>beta</EM> 播放程式是另一个从 <CODE>maplay</CODE>
1.2 改编来的 (事实上,它是 <CODE>maplay</CODE> 1.2+ 所改编的.
而 <CODE>maplay</CODE> 1.2+ 是从 <CODE>maplay</CODE>
改编到 MS Windows 上唯一的版本.)
它加入支援 MPEG Layer 3 音流. 它也能够播放 WAV 档.
它还能够跨过 HTTP 连线接收来播放音流.
<P><CODE>splay</CODE> 的另一项特色是它能被使用成一程式函数库 (在LGPL下),
所以它可以让其他程式使用.
它也设法改善表现,藉由使用绪[threading](如果你需要 <CODE>pthread</CODE>
来使用这个特色) 和一些协调整合[inline assembly].
<P><CODE>splay</CODE> 使用命令列介面和选择性的 X 介面 (它使用 QT).
<P>若在编译後,它没有正常工作 (e.g. 它发生 segmentation
faults), 试著不用绪来编译它.
<P>作者是 Jung Woo-jae (<CODE>jwj95@eve.kaist.ac.kr</CODE>).
<P>它可取得在
<A HREF="http://adam.kaist.ac.kr/~jwj95/">splay's home page</A>.
<P>
<P>
<H3>Sajber Jukebox</H3>
<P>这个程式是 MPEG 图形介面的声音播放程式.它是建设在 <CODE>splay</CODE> 上,
它包含支援 MPEG audio layers 到 III. 它也能播放及时从 HTTP
上读取的 MPEG 声音流.它也很容易设定.
<P>它使用 QT toolkit
(至少 1.2版以上是需要的).
它也使用 LinuxThreads
程式函数库 (此二元码档只正常运作在 0.5版).
<P>作者是 Joel Lindholm
(<CODE>wizball@kewl.campus.luth.se</CODE>).
<P>最新版可取之於
<A HREF="ftp://kewl.campus.luth.se/pub/jukebox">ftp://kewl.campus.luth.se/pub/jukebox</A>.
<P>
<P>
<H3>amp</H3>
<P>此 <EM>beta</EM> MPEG 声音播放程式只支援 MPEG Layer 3 音流.
它能够直接播放在音效卡上,而且它能输出到自然的 PCM 或 WAV 档.
这也占相当大的 CPU 负载 (大约在 133MHz Pentium 上要 60% ).
<P>作者是 Tomislav Uzelac
(<CODE>tuzelac@rasip.fer.hr</CODE>). 它可以免费的使用,散布,
只要它不要在未经允许下商业上贩售(虽然如此,
将其包含在含有免费软的 CD-ROM 上,明确的被允许的).
<P>它可取於
<A HREF="ftp://ftp.rasip.fer.hr/pub/mpeg/amp-0.7.3.tgz">ftp://ftp.rasip.fer.hr/pub/mpeg/amp-0.7.3.tgz</A>.
<P>
<P>
<H3>XAudio</H3>
<P>这个 <EM>alpha</EM> 程式函式库是被写成快速完成 MPEG
音流解码程式函式库到各种 GUI 前端程式. 它支援
MPEG audio layers I, II, 和 III.它能够随机存取位元流[bitstreams].
命令列介面被涵括进来. 而 Motif (Lesstif) 前端程式也被涵括在 Linux
的版本中.
<P>这是由 Gilles Boccon-Gibod, Alain Jobart 和其他人所作的.
连接到此函式库的前端程式也可免费的下载.
而函式库本身必须要被授权使用 (原始码和二元码程式的授权是可以取得的).
<P>连接到此函式库的前端程式可以取得在
<A HREF="http://www.mpeg.org/xaudio/">XAudio home page</A>.
<P>
<P>
<H3>Layer 3 Shareware Encoder/Decoder</H3>
<P>事实上,这是种转换器,它能转换 MPEG Layer 3 音流到
WAV, AIFF, SND, AIFC, 或是自然的 PCM 取样档.
Linux版本并没有直接输出声音到音效卡上. 某人必须先将其转成其他格式.
<P>然而,当你设法去播放使用 <CODE>sox</CODE> 的转换档,你大概将会有杂讯,
因为在 PCM取样上,字的顺序并不正确
(至少在 Intel 平台上是这样).
你必须给予 <CODE>sox</CODE> 这个选项 <CODE>-x</CODE> 来解决这个问题.
但有些播放程式无法被告知字顺序是错的,所以你可能不必去担心这个问题.
<P>若你有比较快的电脑 (大概至少要 100Mhz Pentium),
那麽你能试试直接播放 MPEG Layer 3 音流,
而不需要先转成其他格式声音档,像以下例子(这例子假设你正使用
<CODE>sox</CODE> 且播放 44.1kHz 立体取样.)
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ l3dec foo.mp3 -sto | play -t raw -x -u -w -c 2 -r 44100 -
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>-r</CODE> 之後的数字是音流的取样率,而在 <CODE>-c</CODE>
之後数字则是与它是 mono 或 stereo (甚至或 quad)有关.
若这看起来太复杂,你能够使用像 shell script 或 alias 的东西.
<P>这是共享软体,版权属於 Fraunhofer-IIS.
在 x86 系统的Linux上之展示版可取於
<A HREF="ftp://ftp.fhg.de/pub/layer3">ftp://ftp.fhg.de/pub/layer3</A>.
展示版只能转换 layer III 音流.
<P>
<P>
<H3>X11Amp</H3>
<P>这个 <EM>beta</EM> 软体是图形介面的 MPEG音流播放程式,
很像是 Windows 程式 <CODE>winamp</CODE>.
<P>没有看到任何的版权说明 (我假设它是可以供个人自由的使用).
它是由 Mikael Alm (<CODE>psy@x11amp.bz.nu</CODE>), Thomas Nilsson
(<CODE>fatal@x11amp.bz.nu</CODE>), 和 Olle Hallnas
(<CODE>crocodile@x11amp.bz.nu</CODE>) 所维护.
<P>它可以取得於
<A HREF="http://www.x11amp.bz.nu/">X11Amp's homepage</A>.
目前只有提供给 Intel Linux 和 FreeBSD 用的二元码档.
<P>
<P>
<P>
<H2><A NAME="ss2.4">2.4 WAV</A>
</H2>
<P>从 <CODE>sox</CODE> 手册页上引述:
<P>
<BLOCKQUOTE>
这出现非常相似 IFF档,但不完全一样.
它们是原生的 Windows 3.1 上音乐档.
明显地, Windows 3.1 是如此令人难以相信它的重要性,
对於电脑工业上,它明确的必须要有它自己拥有的声音格式.
</BLOCKQUOTE>
<P>它通常有副档名 <CODE>.wav</CODE>.
<P>也请看章节
<A HREF="#sec-sox">sox</A> 和
<A HREF="#sec-bplay">bplay</A> 以取得更多除了这样所列之外的
WAV 播放程式.
<P>
<P>
<H3>wavplay</H3>
<P>这程式支援播放和录制 WAV 格式.
它使用锁定[locking]所以一次中只能有一声音被播放.
它的锁定能力也能够使用在分离於声音的播放能力.
<P>除了 command-line 介面,它也有 Motif 介面,其可与 Lesstif 来配合使用.
<P>原始作者是 Andre Fuechsel
(<CODE>af1@irz.inf.tu-dresden.de</CODE>),
但再被发展至成形的作者 Warren W. Gay
(<CODE>bx249@freenet.toronto.on.ca</CODE> or <CODE>wwg@ica.net</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/wavplay-1.0.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/wavplay-1.0.tar.gz</A>.
<P>
<P>
<H2><A NAME="ss2.5">2.5 其它东西</A>
</H2>
<P>这节列出播放声音格式的东西,其不值得各自独立成一节
(换句话说,唯一播放程式可取得的格式),
或是一个播放程式就能播放比较多的格式.
<P>
<P>
<H3><A NAME="sec-sox"></A> sox</H3>
<P>这程式事实上是个转换器,也就是它转换一种声音格式到另一种.
然而有些版本的 <CODE>sox</CODE>, 当采用 <CODE>play</CODE>, 来播放声音
( 在 Sound HOWTO 中的 <CODE>play</CODE> 应用程式大概会参照到这).
它支援自然[raw]的 (没有标头的)二元吗及文字的资料, IRCAM Sound Files,
Sound Blaster <CODE>.voc</CODE>, SPARC <CODE>.au</CODE> (w/header), Mac
HCOM, PC/DOS <CODE>.sou</CODE>, Sndtool, 和 Sounder,
NeXT <CODE>.snd</CODE>, Windows 3.1 RIFF/WAV, Turtle Beach <CODE>.smp</CODE>,
CD-R, 以及 Apple/SGI AIFF 和 8SVX 格式.
<P>
<P>在1.3.6x kernels的某些地方, 你可能必须做一些改变在某个档中,
使得它能直接播放声音.换句话说,你必须改变 <CODE>sbdsp.c</CODE>
的 179 行,从
<P>
<BLOCKQUOTE><CODE>
<PRE>
if (abuf_size < 4096 || abuf_size > 65536) {
</PRE>
</CODE></BLOCKQUOTE>
<P>变到
<P>
<BLOCKQUOTE><CODE>
<PRE>
if (abuf_size < 1 || abuf_size > 65536) {
</PRE>
</CODE></BLOCKQUOTE>
<P>但然後再做一次.你可以不必这样做.这样做将不会断掉任何东西.
<P>
<P>著作与版权属很多人, 而且可用在各种用途.
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/Lsox-linux.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/Lsox-linux.tar.gz</A>.
<P>较近的版本是由 Chris Bagwell 所作
(tt/cbagwell@sprynet.com/) (建立在原始 <CODE>sox</CODE>
的最新 gamma 版本, 而且包含以上修正) 可取於
<A HREF="http://home.sprynet.com/sprynet/cbagwell/projects.html">http://home.sprynet.com/sprynet/cbagwell/projects.html</A>.
此外,这版支援 MS ADPCM 和 IMA ADPCM WAV formats.
<!--
ADPCM
-->
<P>
<P>
<H3><A NAME="sec-bplay"></A> bplay</H3>
<P>这是 <EM>beta</EM> 程式可以播放自然的[raw]声音, WAV, and VOC 档.
它也可以录制这些档.它使用各种技巧以取得尽可能的最高速,
使得既使在慢机器上能让吾人尚可接受的执行.
其中一项技巧是要求安装的程式是setuid root.
偏执狂的希望使用这程式可以想去使用 Ian Jackson
(<CODE>ijackson@gnu.ai.mit.edu</CODE>)所做的 Debian package ,
其关闭需要设 setuid bit 的这种特色.
<P>作者为 David Monro (<CODE>davidm@gh.cs.usyd.edu.au</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/bplay-0.96.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/bplay-0.96.tar.gz</A>.
<P>
<P>
<H3>SIDPLAY</H3>
<P>这程式模拟 Commodore 64 的声音介面设备晶片
[Sound Interface Device chip]
(MOS 6581,一般叫它 SID) 和 微处理器单元 (MOS 6510).
所以它可以载入与执行 C64 机械码的程式,它产生音乐或声音.
一般而言,这些是独立码和资料片断,它已经是从游戏和宣传程式抓取[ripped]
下来的,和已经被直接从 C64 转过来的.
<P>
<P>它内定使用命令列介面. 也有 Tk 和 QT 介面可分别取得在主要的包装[package]内.
<P>它是由 Michael Schwendt
(<CODE>sidplay@geocities.com</CODE>) 所维护.
<P>它可以取得在
<A HREF="http://www.geocities.com/SiliconValley/Lakes/5147/">SIDPLAY's home page</A>.
<P>
<P>
<H3>RealAudio Player</H3>
<P>这程式让你听到一种专有格式的声音,其能够即时跨过网际网路,
而不需要先下传整首声音档.它能够单独使用,
但它事实上是想要搭配浏览器(最清楚支援的是 Mosaic 和 Netscape)使用.
在没有 X 下,它不能使用(你不能用它来搭配文字操作模式下的 Lynx 使用).
<P>然而,存在一种□试方法(hack)可以在文字模式的主控台下能够跑
RealAudio 播放程式.
它要有 X virtual frame buffer (Xvfb) server 才可以运作.
它可以取得在
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/traplayer-0.5.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/traplayer-0.5.tar.gz</A>.
<!--
traplayer
-->
<P>这程式是由 Progressive Networks, Inc. 所作.
它不可以再散布,修改...等.
看一下其版权,就会正确详尽知道你能做什麽. 它可以免费被取得在
<A HREF="http://www.realaudio.com/">RealAudio home page</A>.
<P>
<P>
<H3>cat</H3>
<P>某人也许会想说 <CODE>cat</CODE> ,有点滥用的连结工具,是怎麽处理播放声音.
我将透通一个例子,来展示它的用途.
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ cat sample.voc > /dev/dsp
$ cat sample.wav > /dev/dsp
$ cat sample.au > /dev/audio
</PRE>
</CODE></BLOCKQUOTE>
<P>处理一个 <CODE>.au</CODE> 档的 <CODE>cat</CODE> 到 <CODE>/dev/audio</CODE>
通常将会正常工作,而且若够幸运的使一个档(在你的平台上)
有正确的位元组顺序...等,使用 PCM 取样(像是
<CODE>.wav</CODE> or <CODE>.voc</CODE>) 到 <CODE>/dev/dsp</CODE>
之声音档的 <CODE>cat</CODE> 甚至可能听起来正确.
<P>那不是 <CODE>cat</CODE> 的完全没什用的用途.它可能是有用的,举例来说,
如果有一个声音档,而你的所有程式没有一个认得它,而你知道它使用
PCM 取样,那麽你也许能得到一个非常接近的想法在其听起来像是这种方式
(如果你很幸运的话).
<P>
<P>
<HR>
<A HREF="Sound-Playing-HOWTO-3.html">Next</A>
<A HREF="Sound-Playing-HOWTO-1.html">Previous</A>
<A HREF="Sound-Playing-HOWTO.html#toc2">Contents</A>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -