我们有一个无头 Linux 服务器 (Debian 5),用于运行网页代码的集成测试。这些测试中有一些使用 Selenium 实现的测试,它实际上模拟了用户浏览我们的页面并点击内容。其中一个测试现在失败了,因为它涉及启动基于 Flash 的音频播放器并检查进度条是否正确显示。这个测试失败的原因是没有办法播放音频,而且机器上没有声卡,只有简单的网络服务器硬件。
因此,我的问题是:有没有一种简单的方法可以让程序感觉到它的音频输出正在被处理,并且正在播放?我不需要录制播放,也不需要重定向播放或做类似的事情,只需要一个虚拟声卡,就像我们正在使用的虚拟 X 服务器一样,它实际上不需要显示任何东西。
我尝试过使用 JACK,但它太复杂了,文档甚至没有回答这个非常简单的问题。我还在服务器上安装了 alsa;它“假装”运行,但当程序尝试播放音频时,只会喷出与声卡不存在有关的错误和调试信息。
如果你们中有人能对这个问题给出一个简单的答案那就太棒了。
干杯,
乌拉斯
答案1
您尝试过 snd-dummy 模块吗?
$ modinfo snd-dummy
filename: /lib/modules/2.6.28-11-generic/kernel/sound/drivers/snd-dummy.ko
license: GPL
description: Dummy soundcard (/dev/null)
author: Jaroslav Kysela <[email protected]>
srcversion: AFF1C8B79BA4E7C29AE9874
depends: snd-pcm,snd
vermagic: 2.6.28-11-generic SMP mod_unload modversions 586
parm: index:Index value for dummy soundcard. (array of int)
parm: id:ID string for dummy soundcard. (array of charp)
parm: enable:Enable this dummy soundcard. (array of bool)
parm: pcm_devs:PCM devices # (0-4) for dummy driver. (array of int)
parm: pcm_substreams:PCM substreams # (1-16) for dummy driver. (array of int)