Java 获取VLC远程控制接口播放器状态

Java 获取VLC远程控制接口播放器状态,java,controls,vlc,Java,Controls,Vlc,我目前正在从事一个java项目,该项目使用vlc套接字远程控制接口来播放视听内容(例如,vlc-I rc--rc host=localhost:[portnumber])。该接口会导致一些似乎很难处理的特殊情况: 根据vlc遥控器帮助,pause命令是一个切换功能,因此您可以 必须跟踪玩家的当前状态 只有当前视频未暂停时,add命令才会启动视频 无论是否暂停,正在播放命令始终输出1,并且 status命令没有说明是否暂停 客户端的一个限制是视频需要在最后一帧暂停。幸运的是,有一个参数可以处理

我目前正在从事一个java项目,该项目使用vlc套接字远程控制接口来播放视听内容(例如,
vlc-I rc--rc host=localhost:[portnumber]
)。该接口会导致一些似乎很难处理的特殊情况:

  • 根据vlc遥控器帮助,pause命令是一个切换功能,因此您可以 必须跟踪玩家的当前状态

  • 只有当前视频未暂停时,
    add
    命令才会启动视频

  • 无论是否暂停,
    正在播放
    命令始终输出1,并且
    status
    命令没有说明是否暂停

客户端的一个限制是视频需要在最后一帧暂停。幸运的是,有一个参数可以处理它:
——play and pause

问题如下。如果vlc到达最后一帧并自行暂停视频,我怎么知道?现在,我使用
get_time
,希望在倒计时等于0的情况下简单地考虑暂停的视频。然而,vlc会在0:01暂停视频本身,迫使我也将0:01视为结束值。由于0:01检查将其视为暂停,而不是暂停,因此当用户在最后一帧前还剩下一秒钟时启动另一个视频时,会出现小故障。以下是所发生情况的摘要:

  • 0:20(未暂停)+播放按钮: 发送(“添加[文件路径]”)

  • 0:00(暂停)+播放按钮: 发送(“暂停”); 发送(“添加[文件路径]”)

  • 0:01(暂停)+播放按钮: 发送(“暂停”); 发送(“添加[文件路径]”)

  • 0:01(未暂停)+播放按钮: 发送(“暂停”); 发送(“添加[文件路径]”)

    意外行为:它不会播放,因为它已暂停,我们对此一无所知

是否有一种安全的方法来处理玩家状态,这样就不会有未定义的行为?我注意到,当vlc自行暂停时,远程控制台有时会输出一些东西。但是,它似乎不安全,因为它可能输出在此事件之前和之后触发的一些事件


谢谢。

倒计时计时器的粒度是多少?您是否可以在间隔等于支持的最小时间单位的情况下对剩余时间进行两次采样?例如,如果是秒,则检查时间,等待一秒,然后再次检查。如果时间改变了,它仍在播放,如果没有,它将暂停。唯一的缺点是它会给应用程序的响应带来1秒的延迟。

倒计时的粒度是多少?您是否可以在间隔等于支持的最小时间单位的情况下对剩余时间进行两次采样?例如,如果是秒,则检查时间,等待一秒,然后再次检查。如果时间改变了,它仍在播放,如果没有,它将暂停。唯一的缺点是,它会使应用程序的响应延迟一秒钟。

为什么不阻止播放器到达00:01?例如,如果倒计时=00:02,则开始下一步

为什么不阻止玩家到达00:01?例如,如果倒计时=00:02,则开始下一步