在vlc播放时在vlcj中使用blankCursor

时间:2015-03-06 10:24:51

标签: vlcj

使用vlcj 3.2.0的EmbeddedMediaPlayerComponent,可以使用this.setCursorEnabled(false);禁用游标,但这仅适用于画布。

如果VLC正在通过vlcj播放,则光标似乎成为默认光标并保持默认的VLC时间(1000毫秒),直到光标消失。 直接使用VLC,光标时间可以设置为0ms。

如何使用vlcj使光标消失。将时间设置为0毫秒还是使用blankCursor

1 个答案:

答案 0 :(得分:1)

如果你想使用VLC" - mouse-hide-timeout = 0"用vlcj切换然后你可以通过覆盖媒体播放器工厂参数来实现。

默认情况下,EmbeddedMediaPlayerComponent具有以下工厂参数:

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

组件类被设计为子类,您可以覆盖的方法之一允许您设置自己的工厂参数:

mp = new EmbeddedMediaPlayerComponent() {

    @Override
    protected String[] onGetMediaPlayerFactoryArgs() {
        return new String[] {
            "--video-title=vlcj video output",
            "--no-snapshot-preview",
            "--quiet-synchro",
            "--sub-filter=logo:marq",
            "--intf=dummy",
            "--mouse-hide-timeout=0"
        };
    }
};

我们已添加--mouse-hide-timeout=0

这有点难看,因为我们也必须提供默认参数。使用vlcj 3.5.0,如果要保留这些默认参数,它会更容易一些:

mp = new EmbeddedMediaPlayerComponent() {

    @Override
    protected String[] onGetMediaPlayerFactoryExtraArgs() {
        return new String[] {
            "--mouse-hide-timeout=0"
        };
    }
};

可能还有一种更简单的方法......

确保在显示包含媒体播放器的窗口之前致电mediaPlayer.setCursorEnabled(false)