Linux 多媒体指南
作者:Jeff Tranter
出版社:O'Reilly & Associates, Inc.
电子邮件:nuts@ora.com
网址:http://www.ora.com/
价格:32.95 美元
ISBN:1-56592-219-0
评论员:Michael J. Hammel
去年十二月,当我拿起 Jeff Tranter 编写的Linux 多媒体指南时,正好是这本书在我当地的计算机书店上架的同一个月。在为 Unix Web Server Book 撰写完多媒体章节后,我在 Linux Gazette 的“Graphics Muse”专栏中对这本书写了一篇相当支持性的评论。当时,我认为我对多媒体已经相当了解了,因为我为这本书所做的研究已经相当透彻。
当 Linux Journal 联系我,让我为这本书写一篇评论时,我欣然接受了这个机会。我以为我可以简单地润色一下我之前的评论,然后把它发过去。花了一些时间来做这个“润色”工作,在此期间,我意识到这样做是不公平的。我需要回去重新评估评论和文本。Linux 用户应该得到最新的信息。此外,我对多媒体有了更多的了解。
事实证明,我最初的大部分评估都是正确的。Jeff 的书涵盖了与 Linux 操作系统相关的多媒体文件的创建和使用相关的广泛材料。这本书大约有 350 页,包括一些示例多媒体应用程序的源代码清单。像往常一样,O'Reilly 在他们的 ftp 站点上提供了源代码副本。Jeff 对多媒体的覆盖面很广,尽管它在某些领域缺乏细节,并且提供了一些对于大多数多媒体应用程序开发者来说可能不必要的 subject 信息。
当我第一次发现这本书时,我想“糟糕,Jeff 抢先我一步了。” Jeff 涵盖的大部分内容都列在我的 Linux Graphics mini-HOWTO (LGH) 中;然而,许多项目,例如音频,LGH 没有涵盖。关于视频格式和工具以及各种硬件(CD-ROM、操纵杆和声音设备)的详细编程注意事项有更详细的介绍。Linux 多媒体指南 使其成为 O'Reilly Unix 书籍家族的一个很好的补充。这本书显然是面向开发者和管理员的。从最终用户的角度来看,本书没有详细介绍各种应用程序的实际使用。
Linux 多媒体指南 分为五个部分
多媒体导论
用户指南
多媒体应用程序概览
多媒体程序员指南
附录
第一部分向读者介绍了与多媒体相关的各种概念,例如 CD-ROM、图像文件格式和声音文件。这些章节通常都很简短,其中关于音频的一章信息量很大。Jeff 是 Linux Sound HOWTO 的创始人和维护者,他在音频问题方面的经验在他的报道中得到了体现。其中讨论了音频文件格式,并对 Linux 可用的一些流行的声卡进行了比较。
第二部分以讨论在 Linux 系统上进行多媒体处理的硬件要求开始。本节的大部分内容都集中在 CD-ROM 驱动程序或 Linux 声卡驱动程序上,后者在不同时期被称为 Voxware、TASD 和 OSS Lite,现在可以从 4Front Technologies (http://www.4front-tech.com/) 商业购买。还有一个关于操纵杆驱动程序的简短章节。
第二长的部分“多媒体应用程序概览”涵盖了各种形式的多媒体应用程序。其中有关于声音和音乐应用程序、图形和动画应用程序、超媒体应用程序和游戏的章节。当我第一次评论这本书时,我并没有真正将游戏视为真正的多媒体应用程序,主要是因为我很少在电脑上玩游戏。我现在意识到这是一个错误——你只需要看看大型计算机零售连锁店货架上的 MS 和 Mac 游戏就能意识到这个事实。使用 Java、JavaScript 和 Netscape 新的 Tcl/Tk 插件实现的作为网络应用程序的游戏没有被涵盖,但一般的 X Windows、SVGA 和命令行风格的游戏被简要地讨论了。
第三部分与 LGH 非常相似,因为这些章节提供了与程序名称和 URL 相关的信息(如果有)。涵盖的应用程序数量少于 LGH,但书中对应用程序的描述更好;此外,Jeff 还涵盖了 LGH 没有涵盖的游戏和音频应用程序。
第十四章开启了第四部分“多媒体程序员指南”。本节是本书中最长的部分,涵盖了前面讨论的所有设备。本节中的其他章节涵盖了多媒体开发人员可使用的一些图形和窗口工具包。其中一章包含三个示例应用程序。
在我第一次的评论中,我对这一部分没有说太多,但我现在需要这样做。首先,关于编程声音设备的章节非常好,示例程序也很容易理解。如果您要为您的应用程序编程声音,您绝对应该阅读这一章。
关于编程操纵杆和 CD-ROM 设备的章节已经过时(操纵杆章节)或与当前的多媒体应用程序无关(CD-ROM)。我这样说是因为 Linux 上多媒体的未来是通过 X Windows,而不是 SVGA。操纵杆和其他指点设备应该通过 X 输入扩展(XFree86 3.3 现在支持,商业 X 服务器供应商 Metro-X 和 Xi Graphics 据说很快也会添加)进行编程,而不是通过直接管理设备。公平地说,Jeff 的书是在 XFree86 公开发布此支持之前出版的,并且只是最近开发人员才开始广泛使用此服务器扩展。
CD-ROM 与多媒体应用程序的关联只不过是另一个文件系统,使用常用的文件系统 API 访问。一般来说,多媒体应用程序开发人员不需要知道如何为 CD 驱动器编写驱动程序。关于设备驱动程序的信息通常不会在其他平台的多媒体文本中提供(除了不寻常的设备)。再次,公平地说,我不确定其他文本是否提供了关于如何为新的 CD 驱动器编写驱动程序的信息。本章在 Linux 多媒体指南中的出现对文本没有损害,但对于多媒体应用程序开发人员来说是多余的。
第 17 章关于图形和窗口工具包的讨论提供了一些很好的参考资料,但细节不多。如果 Jeff 能对哪些工具包可能最有利于开发人员开始使用或至少更仔细地研究,或者至少能表明自己的立场,那就太好了。此外,Jeff 错过了对 OpenGL 的任何提及。在他提到的所有工具包中,只有 Java 可能比 OpenGL 更受 Linux 多媒体开发人员的关注。OpenGL 和 Java 是广泛接受的标准(真实的或事实上的),而提到的大多数其他工具包充其量只是多平台的。OpenGL 可从商业 X 服务器供应商(Xi Graphics 和 Metro-X)获得,仅使用软件加速(计划进行硬件加速),也可通过 Brian Paul 出色的 Mesa/GL 包获得。
总的来说,我发现 Linux 多媒体指南 是一本很好的参考书,具有中等程度的开发者教程。与许多 Linux 书籍不同,本书详细解释了各种编程接口;它是一个有用的工具,超越了许多 HOWTO 提供的简单的“这是什么,我在哪里可以得到它”。我看到的主要缺点是,像大多数其他 Linux 书籍一样,本书没有提供任何列出的工具的用户视角。如果 Linux 要超越仅限开发者的平台,就需要为知名的应用程序提供详细的用户指南。尽管如此,Jeff 在涵盖广泛主题方面做得很好。虽然不太可能引起经验丰富的开发人员的兴趣,但我毫不犹豫地将本书推荐给初学者或中级用户或开发人员。
