通过HTML / JS或PHP在VLC中打开文件

我试图build立一个本地媒体服务器,纯粹是为了教育目的,并希望通过浏览器(最好是Chrome)在VLC媒体播放器中打开本地video文件。

到目前为止,我已经尝试了以下没有任何运气:

本地“file:///”url:能够打开本地目录在Windows资源pipe理器,但没有运气在其指定的程序(使用IE11)打开媒体文件。

这工作如果通过命令行(PHP my_file.php),而不是通过浏览器运行:

$file = 'pathToFile'; system("pathtovlc/vlc {$file}"); 

通过PHP运行.bat文件,反过来调用VLC命令行也不起作用

最后,直接通过命令行打开文件,或通过CLI使用PHP,就像一个魅力,但我还没有find一种方法,通过浏览器成功地打开文件。

我假设这是一个用户权限问题,因为Apache服务使用系统权限运行,但我似乎无法find一个解决方法。 我读了有关运行Apachepipe理员权限的服务,但我无法find如何真正把这个closures..

任何input,非常感谢!

==编辑==

我尝试通过psexec运行VLC命令,但没有运气..命令运行如下:

 exec('path_to\psexec -u myUsername -p myPassword -c ^path_to\vlc.exe path_to\media_file'); 

再次,这通过命令行很好,但不是通过浏览器..

==编辑2 ==

仍然摆弄这个,因为这肯定会有一种方法来从web浏览器中打开指定程序中的媒体文件。

Apache现在有pipe理员权限,但仍然没有运气得到这个工作!

==编辑3 ==

我在Chrome和Firefox中调用了locallinks扩展,这让我更加深入。 打开<a href="file:///path">link</a>链接只需点击它链接在Chrome中,但导致铬总是下载文件的问题(即使它们是本地的),而不是只是在指定的程序中打开它们。

对于Firefox,扩展工作,但它需要一个右键单击 – > locallinks – >打开,这似乎确定,但我真的很想找一个单击解决scheme。

在VLC中直接打开文件(比如.mkv文件)通过本地的.html文件在Firefox中工作得很好,但是通过http://提供时, 我将about:config中的Firefox的security.fileuri.strict_origin_policy设置更改为false,这允许我甚至通过HTTP打开本地文件:/// URL,但由于某种原因,它从文件URI的末尾剥去了文件名,这意味着它指向文件所在的目录,而不是文件本身..至less可以说是令人沮丧的

最后,我得到了它的工作方式(单独在Firefox上),我可以点击一个文件的URL,并在指定的程序在Firefox外打开文件。

原来,设置security.fileuri.strict_origin_policy设置为false,capability.policy.default.checkloaduri.enabled所有访问和禁用Firefox的VLC插件是所有的!

我还没有找到一个交叉浏览器的解决方案,甚至没有在管理员级别通过PHP执行命令,但我有点放弃了希望!

我不知道有关JS(很肯定,你出于安全考虑本身不能这样做),但是既然你指定了你在本地运行它,你可以在PHP中做到这一点:

 $vlc = "C:\Program Files (x86)\VideoLan\VLC\vlc.exe"; // or whatever the path to vlc is; $path_file = "C:\your\path\file.mp4"; // you can also retrieve that with a relative path like using realpath(relative_path); // launch vlc pclose(popen("start \"$vlc\" \"$path_file\"", "r")); 

如果你想打开一个文件夹中的所有文件,你可以这样做:

 pclose(popen("start "VLCFlux" \"$vlc\" \"$path_folder\"", "r")); 

加上ajax调用来执行这个脚本,没有太大的区别。