Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

音が3秒くらい遅れる

javafx.scene.media.AudioClip を使用して、wavファイルの音を出そうとしています。
java コマンドで Class ファイルを指定してプログラムを起動した場合は、
xxx.play() を実行した時点で音が出ます。

次に、Class ファイルと wav ファイルを jarファイルに入れ、
 その jarファイルを jnlp ファイルの中で指定するようにしました。
そして、index.html と共に jar ファイルと jnlp ファイルを localhost に格納しました。
そこで、index.html → jnlp ファイル経由でプログラムを実行すると、
xxx.play() を実行した時点から 3秒くらい遅れて音が出るようになりました。

何処を調べたらよいのか見当がつきません。
メモリーが足りないようにも見えません。
よろしくお願い致します。



8

回答

91292

閲覧

8件の回答

評価

0

wavが大きくてjarからの伸張、読み込みに時間かかってるのか。
ところで
>xxx.play() を実行した時点から
これはどうやって分かったの?xxx.play()する前に時刻を表示してる?

評価

0

ありがとうございます。
wavファイルは 3つあり、サイズは 212KB, 22KB, 151KB です。
どのファイルでも音が 3秒くらい遅れます。

xxx.play() 実行するときは同時に画面も変更しています。
画面が変わってから 3秒くらい経って音が聞こえます。

評価

0

そのサイズなら伸張は一瞬だろうね…。
「同時に画面も変更しています」ってことなら、まずはその画面の変更を取っ払った状態で確認してみたら。

評価

0

ありがとうございます。
問題になっているのは、簡単なゲームをするプログラムです。
ボタンをクリックしたとき、失敗したとき、ゲームが完了したときに、
それぞれの効果音を出し、同時に画面を更新しています。
「画面の変更」とはこの更新のことですので、これを取り払うことはできません。

評価

0

原因の切り分けのため、試しに「画面の変更を行わないで」ということだと思いますよ。

評価

0

ありがとうございます。
確かにそうですね。
今、出先にいますので、明日帰ったらテストしてみます。
音は遅れないような気がします。

評価

0

テスト結果を報告します。
画面の変更をしなくても音は 3秒くらい遅れます。

評価

0

ダメ元で、音源をwavファイルからmp3ファイルに変えてみました。
すると音の遅れはなくなりました。
mp3ファイルのサイズは 14KB、40KB、50KB です。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。