2016-07-10 71 views
0

我在Windows 2012服务器上安装了VLC播放器。我想使用vlc播放器将我的输入.ogg流转码为.mp3。我有一个网络应用程序产生.ogg流,当用户点击我的网络应用程序上的转换按钮,我想执行一个JavaScript应该采取.ogg流作为我的输入,并执行一个Windows命令安装在服务器上的VLC播放器和开始转码。我有Windows命令使用vlc将.ogg转换为.mp3,但我希望以编程方式进行。在一个按钮上单击如何访问命令行并执行Windows命令?使用Windows命令从Javascript运行VLC播放器

+0

目标系统应该只有Windows? – StanE

+0

@StanE是的。这将是Windows。不要担心目的地。我可能会也可能不会保存转码后的文件。我只需要一种方法,我怎样才能从一个JavaScript执行一个Windows命令。或者,如果有另一种更好的方式从Web应用程序执行Windows命令。 –

回答

0

我不认为这是可能的JavaScript没有操纵客户端系统。如果每个网站都能够在客户端系统上执行命令,那就太危险了。浏览器中的JavaScript运行在沙箱中,这意味着它不能访问系统并执行命令。

但是,如果你有可能操纵系统,那么你可以这样做,我想。至少在Windows中。您可以添加一个新的伪协议到Windows注册表并将其链接到VLC播放器。类似于其他应用程序的操作方式,例如torrent客户端,jDownloader或IRC客户端。然后,你可以输入或打开一个弹出这样的协议地址,像

vlcurl:your-data-comes-here 

一个工作的例子是与e-Mail伪协议,你可以在浏览器尝试现在:

mailto:test%40example.com?subject=Hello%20you 

这里是一个例子:

但注意!这可能会使客户端系统容易受到来自Web的攻击。我只是把它作为一个例子来展示,我不会建议使用这种方法。此外,这不适用于所有浏览器。某些浏览器根本无法处理注册表系统设置,有些浏览器会显示您必须接受的对话框。所以功能是有限的。一个reg文件示例:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\vlcurl] 
@="VLC player URL" 
"FriendlyTypeName"="VLC player URL" 
"URL Protocol"="" 
"EditFlags"=dword:00000002 

[HKEY_CLASSES_ROOT\vlcurl\DefaultIcon] 
@="C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe,0" 

[HKEY_CLASSES_ROOT\vlcurl\shell] 

[HKEY_CLASSES_ROOT\vlcurl\shell\open] 

[HKEY_CLASSES_ROOT\vlcurl\shell\open\command] 
@="\"C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe\" \"%1\"" 

您需要编辑最后一行。然后你可以执行我上面写的URL(“vlcurl:your-data-comes-here”)。

另一种方式是使用自己的浏览器插件/插件,如flash,绕过浏览器的沙箱(afaik)。