ビデオバーを実装しようとしています。つまり、ビデオがあり、ビデオの実行中に 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),
これはプライベートであるため、オーバーライドできません。
これはよくある問題だと思うので、理想的な解決策があるはずです。
助言がありますか?前もって感謝します。