我在windows 2012服务器上安装了一个VLC播放器。我想使用vlc播放器将输入的.ogg流转换为.mp3。我有一个生成.ogg流的web应用程序,当用户单击我的web应用程序上的“转换”按钮时,我想要执行一个javascript,它应该以.ogg流作为输入,并对安装在服务器上的vlc播放器执行一个windows命令,并启动代码转换。我有windows命令,可以使用vlc将.ogg代码转换为.mp3,但我希望通过编程实现这一点。在按钮上单击如何访问命令行并执行windows命令?
发布于 2016-07-10 17:29:31
我认为,如果不操作客户端系统,JavaScript就不可能做到这一点。如果每个网站都能在客户端系统上执行命令,那就太危险了。浏览器中的JavaScript运行在沙箱中,这意味着它无法访问系统并执行命令。
但是如果你有可能操纵这个系统,那么你可以这样做,我想。至少在Windows里是这样的。您可以向windows注册表添加一个新的伪协议,并将其链接到VLC播放器。类似于其他应用程序的做法,例如torrent客户端、jDownloader或IRC客户端。然后,您可以输入或打开具有这样一个协议地址的弹出窗口,如
vlcurl:your-data-comes-here一个有用的例子是电子邮件伪协议,您现在可以在浏览器中尝试该协议:
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来之不易”)。
另一种方法是使用您自己的浏览器插件/插件,比如flash,它绕过浏览器的沙箱(afaik)。
https://stackoverflow.com/questions/38294469
复制相似问题