1

我尝试实现一个视频栏。这意味着我有一个视频,并且在视频运行期间,JScrollbar 的旋钮应该根据活动的视频帧移动。我还想使用这个栏作为用户输入来移动到视频中的某个帧。

到目前为止,有一个线程轮询活动图像和活动帧号。显示图像并将 JScrollbar 设置为表示帧的位置。这工作正常。(顺便说一句,我知道轮询不好,但由于内部愚蠢的库,我必须这样做。)

现在我为用户交互添加了 AdjustmentListener。每次用户拖动 JScrollBar 的旋钮时,我都会重置视频的位置。它也有效。但问题是每当用户拖动旋钮时都会调用 AdjustmentListener,而且当 VideoImagePollingThread 设置旋钮时也会调用。所以我的电话太多了。

我无法区分用户事件和 VideoImagePollingThread 事件。

我尝试构建自己的 JScrollBar 子类并覆盖

void fireAdjustmentValueChanged(int id, int type, int value).

所以我不会在视频线程中引发事件。但这不起作用,因为还有另一种方法

void fireAdjustmentValueChanged(int id, int type, int value, boolean isAdjusting),

这是私有的,所以我不能覆盖它。

我认为这是一个普遍的问题,所以必须有一个理想的解决方案。

有什么建议么?提前致谢。

4

0 回答 0