如何使用cgi在服务器端播放wav声音?

时间:2011-10-18 00:22:05

标签: apache cgi server-side wav

如何从(bash)CGI脚本运行命令以在服务器端播放wav声音

3 个答案:

答案 0 :(得分:2)

您可以按照nak的描述执行命令行音频播放器,但由于运行Apache的用户的权限,这可能无法正常工作。默认情况下,Apache以www-data:www-data(或apache:apache或www:www在某些发行版上)运行。作为快速修复/测试,您可以将Apache设置为以具有访问计算机上音频设备权限的用户身份运行,方法是修改/etc/apache2/apache2.conf(或/etc/httpd/httpd.conf“)文件拥有:

 User USER_THAT_CAN_PLAY_AUDIO
 Group USER_THAT_CAN_PLAY_AUDIO 

警告:这不安全,并不是永久解决方案!

答案 1 :(得分:0)

我就是这样做的

#!/bin/sh
echo Content-type: text/plain
echo ""
echo "Server is playing sine.wav!"
aplay -q sine.wav

答案 2 :(得分:0)

我偶然发现了这个老问题,看看如何解决同样的问题:当有人发出特定请求时,让我的个人Apache网络服务器警告我(在我的情况下,无需运行IM即可进行聊天呼叫)。 / p>

以下解决方案是我在Slackware 14.1上使用的:根据您的发行版 YMMV

  • 启动specify

  • 添加行visudo(TheUserRunningApache是​​Apache使用的用户名)

  • 在PHP页面中,您想播放声音添加以下行:TheUserRunningApache ALL=(ALL) NOPASSWD: /usr/bin/play

如果您不想将Apache的访问权限授予system ("sudo /usr/bin/play SOUND.WAV");文件夹,即使仅限于/usr/bin,您也可以复制play可执行文件(用于运行的程序) sox)其他地方,但您必须相应地修改上面的最后两条说明。