概要
JavaFXで音楽ゲーム(所謂音ゲー)を制作しているのですが、MediaPlayerを使ってMediaPlayer.setStartTime()を指定した音楽を再生したとき、Eclipseで実行したときは遅延もほとんど無く再生されるのに、Eclipseで実行可能jarファイルにエクスポートして実行すると、1秒ほどの遅延が発生します。
起動時のVM引数も同じものを指定しており、ファイル構成も全く同じです。
jarファイルを移動してディレクトリを同じにしてみたりもしたのですが改善は見られませんでした。
ソースコード
長いので全体は載せませんが・・・
Java
1public class Main extends Application { 2 public static void main(String[] args) { 3 launch(args); 4 } 5 6 @Override 7 public void start(Stage stage) throws Exception { 8 //ウィンドウ操作関連 9 new AnimationTimer() { 10 public void handle(long currentNanoTime) { 11 frame++; 12 if(frame==60)playmusic(new Duration(50000)); 13 } 14 }.start(); 15 stage.show(); 16 } 17 18 void playmusic(Duration dur){ 19 Media media = new Media(new File("music.mp3").toURI().toString()); 20 MediaPlayer mp = new MediaPlayer(media); 21 mp.setStartTime(dur); 22 mp.setCycleCount(MediaPlayer.INDEFINITE); 23 mp.play(); 24 } 25} 26```大体こんな感じです(かなり省きましたが、メディアの再生はこんな感じでやってます)。 27体感では、durに渡す値が大きくなればなるほど、メディアの再生も遅れる印象です。 28一番不思議なのが、「Eclipseで実行すると普通に動作する」ということなのですが、原因若しくは解決法が分かる方がいらっしゃれば、ご教授願いたいです。
回答2件
あなたの回答
tips
プレビュー