【问题标题】:Run VLC Player from Javascript using windows command使用 windows 命令从 Javascript 运行 VLC Player
【发布时间】:2016-07-10 17:12:11
【问题描述】:

我在 Windows 2012 服务器机器上安装了 VLC 播放器。我想使用 vlc 播放器将我的输入 .ogg 流转码为 .mp3。我有一个生成 .ogg 流的 Web 应用程序,当用户单击我的 Web 应用程序上的转换按钮时,我想执行一个 javascript,它应该将 .ogg 流作为我的输入,并对安装在服务器上的 vlc 播放器执行 windows 命令和开始转码。我有使用 vlc 将 .ogg 转码为 .mp3 的 windows 命令,但我希望这以编程方式发生。在按钮上单击如何访问命令行并执行 windows 命令?

【问题讨论】:

  • 目标系统应该只有Windows吗?
  • @StanE 是的。这将是窗户。不用担心目的地。我可能会也可能不会保存转码后的文件。我只需要一种方法如何从 javascript 执行 windows 命令。或者,如果有另一种更好的方法可以从 Web 应用程序执行 windows 命令。

标签: javascript windows command-line vlc


【解决方案1】:

我不认为在不操纵客户端系统的情况下使用 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-data-comes-here")。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2016-08-13
    相关资源
    最近更新 更多