2012-01-03 76 views
1

分叉一个新进程目标:通过PHP代码启动VLC播放器,并在播放器中播放指定的视频。 操作系统:Ubuntu 11.10如何在我的操作系统上使用PHP

问题:请参考下面的脚本(还是PHP新手),我看不到视频播放,甚至没有执行该脚本的后台VLC进程。你能指出这个问题和适当的文件,这将有助于我做这项工作吗?如果我在shell上发出相同的命令,视频播放,但在使用PHP的“系统”命令时,不播放视频。

脚本:在网页上

<?php 
system('/usr/bin/vlc /home/atish/Videos/TEDGary.avi', $retval); 
echo $retval; 
?> 

输出:

0 

更大的目标:我要为用户运行我的应用程序(C代码)提供webinterface。我的C代码应用程序实现了一些视频代码转换和管理工作流程,我希望能够在后台运行该C代码,并且当它完成时,我想用VLC播放视频。

谢谢。

+2

你想在哪里开始vlc播放器?在服务器上?在客户端?客户端和服务器始终是同一台机器吗? – VolkerK 2012-01-03 11:39:05

+0

是的,客户端和服务器是同一台机器。我只是想以某种方式为我的应用程序提供Web界面。我想让视频在正在执行php脚本的同一台机器上启动...... – user940154 2012-01-03 11:44:15

+0

出现的第一个问题是:用户的Web服务器运行时是否具有在用户当前桌面中打开窗口的权限? – 2012-01-03 11:55:48

回答

0

让每个人都使用X服务器:

xhost + 

在脚本中,在执行命令时设置DISPLAY变量:

system('DISPLAY=:0 /usr/bin/vlc /home/atish/Videos/TEDGary.avi', $retval); 

不过,我也建议你考虑使用xhost时的安全隐患。

+0

谢谢。这工作。 – user940154 2012-01-03 13:28:33

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

+0

我使用的是Ubuntu 11.10。 – user940154 2012-01-03 11:49:54

+0

谢谢你,第二个链接帮助。我能够看到vlc现在弹出。谢谢! – user940154 2012-01-03 13:27:30

1

如何:

<?php 
exec('nohup /usr/bin/vlc /home/atish/Videos/TEDGary.avi &'); 
?> 

的&末告诉进程在后台和前台的nohup的运行讲述的过程中不被杀死时,启动shell(在此情况下php)被关闭。

0

您需要PHP才能够使用您的用户帐户(以您身份登录)才能打开图形窗口。 PHP通常使用apache的用户而不是你自己的用户。我不知道是否可以使用一个用户帐户进行2个进程。尝试使用SU命令或其他命令。

相关问题