Как я могу воспроизвести звук wav на стороне сервера, используя cgi? - PullRequest
0 голосов
/ 18 октября 2011

Как запустить команду из (bash) CGI-скрипта для воспроизведения звука wav на стороне сервера ?

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012

Вы можете запустить аудиоплеер из командной строки, как описано в 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 

Предупреждение: это небезопасно и не предназначено для постоянного решения!

0 голосов
/ 09 мая 2015

Я наткнулся на этот старый вопрос, пытаясь решить ту же проблему: чтобы мой личный веб-сервер Apache предупреждал меня, когда кто-то делает конкретный запрос (в моем случае это звонок в чат без необходимости запуска чата).

Ниже приведено решение, которое я использую в Slackware 14.1 : в соответствии с вашим дистрибутивом YMMV .

  • запуск visudo

  • добавить строку TheUserRunningApache ALL=(ALL) NOPASSWD: /usr/bin/play (TheUserRunningApache - имя пользователя, используемое вашим Apache)

  • в PHPСтраница, на которой вы хотите воспроизвести звук, добавьте эту строку: system ("sudo /usr/bin/play SOUND.WAV");

Если вы не хотите предоставлять доступ к Apache папке /usr/bin, даже если она ограничена только play, вы можете скопировать исполняемый файл sox (программу, используемую для запуска /usr/bin/play) в другом месте, но вам придется соответствующим образом изменить две последние инструкции выше.

0 голосов
/ 23 октября 2011

Вот как бы я это сделал

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