目标:通过PHP代码启动VLC播放器,并在播放器中播放指定的视频。 操作系统:Ubuntu 11.10
问题:请参考下面的我的脚本(对PHP来说仍然是新的),我看不到视频播放,甚至在执行此脚本时都没有运行后台VLC进程。你能否指出一下这个问题和相应的文件,以帮助我完成这项工作?如果我在shell上发出相同的命令,视频会播放,但是在使用PHP的“system”命令时,不播放任何视频。
脚本:
<?php
system('/usr/bin/vlc /home/atish/Videos/TEDGary.avi', $retval);
echo $retval;
?>
网页上的输出:
0
更大的目标:我想为用户提供一个Web界面来运行我的应用程序(C代码)。我的c代码应用程序实现了一些视频转码和管理工作流程,我希望能够在后台运行该C代码,当它完成时,我想在VLC中播放视频。
三江源。
答案 0 :(得分:2)
首先,您必须提供一些操作系统信息(Linux?Mac?),以及可能有关您的窗口管理器的一些信息。在VLC中播放视频可能比启动后台进程困难一些,这在此处进行了解释:http://www.php.net/manual/en/function.exec.php
启动并运行gui应用程序可能很棘手,但使用“xhost”并导出DISPLAY配置 - 请参阅PHP from commandline starts gui programs but apache doesn't
答案 1 :(得分:1)
这个怎么样:
<?php
exec('nohup /usr/bin/vlc /home/atish/Videos/TEDGary.avi &');
?>
&amp;最后告诉进程在后台运行,并且前端的nohup告诉进程在启动shell(在本例中为php)关闭时不会被杀死。
答案 2 :(得分:0)
您需要PHP才能使用您的用户帐户(以您身份登录)才能打开图形窗口。 PHP通常使用apache的用户而不是您自己的用户。我不知道你是否可以使用一个用户帐户进行2个进程。尝试使用SU命令或其他命令。
答案 3 :(得分:0)
允许每个人使用X服务器:
xhost +
在脚本中,执行命令时设置DISPLAY变量:
system('DISPLAY=:0 /usr/bin/vlc /home/atish/Videos/TEDGary.avi', $retval);
但是,我还建议您在使用xhost时考虑安全隐患。