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