HatenaPocket本稿は、動画や音声を再生できるMediaPlayerについて紹介したいと思います。JavaFXには音声を再生することができるAudioClipも存在しますが、アプリケーション自体をJavaFXアプリケーションで作成するのならば、音声再生する用途にもMediaPlayerの使用をお勧めします。こちらはAudioClipとは違い、メモリに全展開する再生方式ではない為、メモリにやさしい処理となります。対応ファイル形式に関してはこちらの公式ドキュメントに記述されています。音声を再生まずはmp3ファイルの再生から見ていきましょう。音声の再生はmediaクラスとMediaPlayerクラスを使用します。JavaFXアプリケーションが終了している状態だと再生されないので注意が必要です。MediaPlayer(Mediaオブジェクト)と指定しましょう。MediaPlayer(m);//再生開始mp.play();}}実行結果https://nompor.com/wp-content/uploads/2017/12/sample2.mp3ウィンドウをあえて表示しているのは、Java9の時点ではJavaFXアプリケーションを実行中の時でなければ再生されないからです。ゲーム制作においてはどちらにしても表示することになるので問題にはならないでしょう。動画を再生するにはMediaPlayerをMediaViewに組み込むことで表示できます。MediaView(MediaPlayerオブジェクト)と指定しましょう。動画の再生に使うサンプルは下記です。sample2.mp4https://nompor.com/wp-content/uploads/2018/01/sample2.mp4※2018/02/17時点でなぜかchrome環境では再生時間が2倍になっています。本当は13秒程度の再生時間です。IE、safari、firefoxでは問題ないようです。自動的に再生する時間を指定するsetStartTimeメソッドや準備ができたら即再生するsetAutoPlayメソッドなどの便利なメソッドも存在します。動画や音声をループ再生させたい場合はsetCycleCount(ループ回数)と指定しましょう。setCycleCount(MediaPlayer.INDEFINITE)と指定することで無限ループとなります。mp.setAutoPlay(true);}}実行結果サンプルでは2回に設定したので再生終了後もう一度だけ再生されると思います。再生中の動画や音声を停止したい場合はstopメソッドを使用します。Duration(ミリ秒))で何秒後に停止するかなどを指定したほうが簡単です。ここではstopメソッドを試したかったのであえてこのようなサンプルとしています。用途によって使い分けましょう。ゲーム用途ならstopメソッドだけ覚えれば問題ないです。一時停止pauseメソッドで一時停止ができます。一時停止後playメソッドを呼ぶと再開できます。指定seekメソッドを利用します。Duration(ミリ秒))で再生位置の指定ができます。音量の変更setVolumeメソッドを利用すると音量を変更できます。AudioClipとは違い、再生中に音量変更が可能となっています。変更setRate(速度倍率)メソッドを利用すると再生の速度を変更できます。音声に関してはピッチも変更されます。コメントをキャンセルメールアドレスが公開されることはありません。当サイトのプライバシーポリシーについてはこちらからご参照いただけます。