vlcj媒体选项" - 无覆盖"不工作?

时间:2017-02-10 02:30:27

标签: vlc vlcj

我想关闭vlc的硬件加速选项,以避免因图形卡驱动程序错误导致的一些滞后问题。我试图在prepareMedia方法中传递该选项。这没有任何帮助(就像我通过命令行执行它一样:vlc --no-overlay' path-to-video')。它实际上甚至似乎使播放更加迟钝。以下是我设置播放器的代码的一部分。我实际上尝试过playMedia("路径到视频"," - 无覆盖")并且它也没有用。

mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
player = mediaPlayerComponent.getMediaPlayer();
...
player.prepareMedia("path-to-video","--no-overlay");

1 个答案:

答案 0 :(得分:0)

在创建MediaPlayerFactory而不是播放媒体时,必须传递其中一些选项 - 至于它为什么会这样,以及它是如何实现LibVLC的。

如果您正在使用EmbeddedMediaPlayerComponent,可以执行以下操作来提供这些选项:

mediaPlayerComponent = new EmbeddedMediaPlayerComponent() {
    protected String[] onGetMediaPlayerFactoryArgs() {
        return new String[] {"--no-overlay"};
    }
}

请注意,这将替换默认的媒体播放器工厂参数,因此您可能也想指定其他一些 - 这些是默认值:

protected static final String[] DEFAULT_FACTORY_ARGUMENTS = {
    "--video-title=vlcj video output",
    "--no-snapshot-preview",
    "--quiet-synchro",
    "--sub-filter=logo:marq",
    "--intf=dummy"
};

这就是你如何设置这样的原生VLC选项,但是这个特定选项是否能达到你真正想要的(并且没有任何其他副作用)是另一回事。