php - 如何在 Linux 上运行带有来自 PHP web 脚本的音频扬声器输出的 mplayer?

标签 php linux apache fedora

我使用用户名登录到 linux feora 15 发行版:stackoverflow。 我的浏览器在本地系统中执行一个 PHP 脚本来使用 PHP system("mplayer/tmp/stackoverflow.wav"), passthru("mplayer/tmp/stackoverflow.wav") 命令播放音乐。比如linux命令。

作为 stackoverflow 用户,我没有听到任何声音。但我可以看到 mplayer/tmp/stackoverflow.wav 正在运行,音频持续时间为 8 分钟。

我的问题是:如何使用 PHP 系统("mplayer/tmp/stackoverflow.wav");切换用户并运行相同的命令,以便我可以用我的 PHP 听到我的音乐?

<?php
// for example
switchuser("su stackoverflow password");
system("mplayer /tmp/itworks.wav");
?>

最佳答案

我也想这样做。 当我尝试仅通过 shell_ecex(); 运行 mplayer 时,它不会选择 pulseaudio 进行输出。即使我在命令中包含 -ao pulse 它也不起作用。 当我尝试使用 sudo 运行 mplayer 命令时(我将 www-data 添加到 sudoers 文件),mplayer 显然开始播放(根据资源使用情况)但没有输出。当我手动终止 mplayer 实例时,整个声音输出都被阻止,即使我通过控制台启动 mplayer 也是如此。 您对我如何通过 PHP 运行 mplayer 有什么建议吗?

编辑:我有一个解决方案!我的命令如下所示:

shell_exec('sudo -u [username] nohup  mplayer -slave [mplayer attributes go here] 2> /dev/null > /dev/null &'));

这也会阻止 php 脚本等待来自 mplayer 的结果,因此它会启动 mplayer 并继续运行。

关于php - 如何在 Linux 上运行带有来自 PHP web 脚本的音频扬声器输出的 mplayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6243327/

相关文章:

c - Windows 上的/proc/net/dev 替代方案

java - 运行本地 Apache、Java 和 PHP 本地服务器的不同方法?

java - 为什么 pom.xml/maven 中有排除依赖项的依赖项的选项?

mysql - CMS 制作的简单模块正在安装但未激活

php - 将数组内容插入字符串

c# - 通过单击第 3 方 .NET 应用程序的按钮自动用户登录 PHP 网站

linux - 有没有办法在 posix shell 或 bash 中扇出流?

php - 如何确保php对wp专用服务器有写权限

php - 如何通过 PHP 从 Swift 将 UIImage 上传到 MySQL?

php - 如何在 php 中制作一个表单,允许用户在需要时添加其他表单字段?