在无头 Linux 服务器上模拟音频播放

在无头 Linux 服务器上模拟音频播放

我们有一个无头 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)

相关内容