将 vlcj 与代理一起使用

Using vlcj with proxy

我的视频文件只能在 vlc 播放器中使用代理播放,当我尝试使用 vlcj 打开它时,我无法连接到该媒​​体 - 我一直在尝试使用 mrl 中的 http 代理配置选项 ( http://path_to_media :http-proxy=proxy_address ) - 但它对我还不起作用。我也试过设置环境变量 http_proxy 但它对我也不起作用。谁能告诉我我做错了什么?也许不应该在媒体路径和配置选项之间有空格?也许配置选项不适用于 Windows?我怎样才能访问这个视频(我知道我可以使用转码来做到这一点,但它似乎有点过分,我觉得应该有一个更简单的方法)

您可以在 Java 中发出请求,检索流并使用 https://github.com/caprica/vlcj/blob/de90d77bc288843b4d07dad84ff9d0515e906657/src/main/java/uk/co/caprica/vlcj/media/callback/AbstractCallbackMedia.java 将其提供给 vlcj 进行播放。

编辑:

否则使用

--http-proxy=<string>      HTTP proxy
          HTTP proxy to be used It must be of the form
          http://[user@]myproxy.mydomain:myport/ ; if empty, the http_proxy
          environment variable will be tried.

来自 https://wiki.videolan.org/VLC_command-line_help/。首先尝试使用普通的 VLC CLI 找到正确的命令。在此处完整分享您的尝试。

一般来说,如果您想传递诸如“--http-proxy”之类的选项,可以采用以下方法:

MediaPlayerFactory factory = new MediaPlayerFactory("--http-proxy=<your settings");

或者:

String yourProxySettings = "http://whatever.com";
MediaPlayerFactory factory = new MediaPlayerFactory("--http-proxy", yourProxySettings);

然后使用这个工厂实例创建您的媒体播放器。

我想您在调用 play() 时使用此机制而不是使用媒体选项,因为您是在配置 VLC 实例本身,而不是单个媒体。

警告:在我拥有的 VLC 版本中,我没有看到 --http-proxy 选项被报告为可用的命令行选项。