exch-bms2 / beatoraja

Cross-platform rhythm game based on Java and libGDX.
GNU General Public License v3.0
623 stars 146 forks source link

Fixed problem with playback position not resetting after interruption #817

Open Getaji opened 4 days ago

Getaji commented 4 days ago

以前 #801 の互換性問題を #805 で修正しましたが、動画の再生を中断すると次回同じ動画を再生した時に中断位置から始まるというバグが新たに発覚したため、再び修正しました。確認不足で何度も修正PRを出してしまい申し訳ありません。

中断位置から始まってしまうバグは grabber.setFrameNumber(int) ではなく grabber.setVideoFrameNumber(int) を使用すれば解決しますが、後者のメソッドはJavaCV 1.4.1で実装されたものであり、現在リポジトリのlibにあるJavaCVのバージョンでは利用できません (#805 の修正はこの互換性の解決を図るものでした)。そのため、後者の新しいメソッドの使用を試みつつ、このメソッドが未定義なら以前のループ処理 (grabber.restart() & grabber.grabImage()) を行うように変更しました。

JavaCVの更新をするという案もありましたが、無闇にlibのバイナリを更新するとリポジトリのサイズが増大するため、一旦このような解決策を採りました。ライブラリのバージョン管理方針は別途議論できればと思います。