public final class MediaPlayer extends Object
MediaPlayerクラスは、メディアの再生のコントロールを提供します。 MediaおよびMediaViewクラスとの組合せで使用し、メディアの再生を表示および制御します。 MediaPlayerにはビジュアル要素が一切含まれないため、MediaViewクラスとともに使用して、存在するすべてのビデオ・トラックを表示する必要があります。 
 MediaPlayerは、pause()、play()、stop()およびseek()の各コントロールに加え、すべてのタイプのメディアに適用されるrateおよびautoPlayプロパティも提供します。 また、オーディオ再生の特性を制御する、balance、muteおよびvolumeの各プロパティも提供します。 オーディオ品質に対するより詳細な制御は、プレイヤに関連付けられたAudioEqualizerで実現されます。 オーディオ再生の周波数記述子は、AudioSpectrumListenerを登録することによって監視できます。 再生位置、速度およびバッファリングに関する情報は、それぞれcurrentTime、currentRateおよびbufferProgressTimeの各プロパティから取得できます。 メディア・マーカー通知は、onMarkerプロパティとして登録されたイベント・ハンドラにより受信されます。 
期間が有限であるメディアの場合、再生の位置は0.0からそのメディアの期間までの任意の時点までに設定できます。 MediaPlayerでは、startTimeおよびstopTimeプロパティを追加することによってこの定義を詳細化し、実質的に、[startTime,stopTime]に時間位置が制約された仮想メディア・ソースを定義します。 メディアの再生は、startTimeで開始し、stopTimeまで続行します。 これらの2つのエンドポイントによって定義された間隔はサイクルと呼ばれ、その期間は開始時間と停止時間の差となります。 このサイクルは、特定の回数または無限に繰り返すように設定できます。 メディア再生の合計期間は、サイクルの期間とサイクルが再生される回数によって決まります。 サイクルが停止時間に到達してサイクルが再び再生されると、onRepeatプロパティに対して登録されたイベント・ハンドラが起動します。 サイクルが停止時間に到達してサイクルが繰り返されない場合、onEndOfMediaプロパティに対して登録されたイベント・ハンドラが起動します。 現在再生されているサイクルのゼロ相対インデックスがcurrentCountにより維持されます。 
 
MediaPlayerの操作は本質的に非同期です。 プレイヤは、そのステータスがMediaPlayer.Status.READYに遷移する(実質上、通常はメディアのプリロールが完了したときに発生)までは、コマンドに即時に応答する準備が整っていません。 ただし、プレイヤのステータスがREADYになる前にプレイヤに対して行われた一部のリクエストは、このステータスに入ったときに有効になります。 これらには、READY遷移の前の、play()の起動(途中でpause()やstop()が起動されなかった場合)、autoPlay、balance、mute、rate、startTime, stopTime、volumeのいずれかのプロパティの設定などがあります。 
アプリケーションによってプレイヤのステータス変更が認識されるように、statusプロパティをモニターでき、また、特定のステータスに入ったときにアクションを実行する必要がある場合は、コールバック関数をonReadyなどのプロパティを介して登録できます。 また、errorおよびonErrorプロパティを使用して、それぞれ、エラーの発生をモニターし、それに対応してアクションが実行されるようにできます。 
複数のMediaViewの間で同じMediaPlayerオブジェクトを共有できます。 このことは、プレイヤ自体には影響しません。 特に、ビューのプロパティ設定は、メディアの再生に一切影響しません。 
| 修飾子と型 | クラスと説明 | 
|---|---|
| static class  | MediaPlayer.StatusMediaPlayerの異なるステータス値を示す列挙。 | 
| 修飾子と型 | フィールドと説明 | 
|---|---|
| static int | INDEFINITE実質的には無限回の再生サイクルを表す値。 | 
| コンストラクタと説明 | 
|---|
| MediaPlayer(Media media)特定のメディアのプレイヤを作成します。 | 
public ReadOnlyObjectProperty<MediaException> errorProperty
MediaExceptionに設定される監視可能プロパティ。getError()public ObjectProperty<Runnable> onErrorProperty
public BooleanProperty autoPlayProperty
falseです。 public DoubleProperty rateProperty
1.0の速度ではメディアは通常の(エンコードされた)再生速度で再生され、2.0では通常速度の2倍で再生されます。現在サポートされているレートの範囲は[0.0, 8.0]です。 デフォルト値は1.0です。 getRate()、setRate(double)public ReadOnlyDoubleProperty currentRateProperty
rateが1.0に設定され、プレイヤが一時停止または停止している場合、currentRateはゼロになります。 getCurrentRate()public DoubleProperty volumeProperty
[0.0 1.0]で、ここで0.0は無音、1.0はフル音量(デフォルト)です。 getVolume()、setVolume(double)public DoubleProperty balanceProperty
[-1.0, 1.0]で、-1.0は左に振切り、0.0はセンター、1.0は右に振切りです。 デフォルト値は、0.0です。 public ObjectProperty<Duration> startTimeProperty
Duration.ZEROです。 
 制約: 0 ≤ startTime < stopTime
public ObjectProperty<Duration> stopTimeProperty
getMedia().getDuration()制約: startTime < stopTime ≤ Media.duration
public ReadOnlyObjectProperty<Duration> cycleDurationProperty
startTimeとstopTime間の時間。 メディアの合計期間については、Media.durationプロパティを使用します。 getCycleDuration()public ReadOnlyObjectProperty<Duration> totalDurationProperty
cycleCountがINDEFINITEに設定されている場合、これもINDEFINITEとなります。 メディア期間がUNKNOWNである場合、これも同様にUNKNOWNとなります。 それ以外の場合、合計期間はcycleDurationとcycleCountにより決まります。 getTotalDuration()public ReadOnlyObjectProperty<Duration> currentTimeProperty
seek(javafx.util.Duration)を使用します。 getCurrentTime()public ReadOnlyObjectProperty<MediaPlayer.Status> statusProperty
getStatus()public ReadOnlyObjectProperty<Duration> bufferProgressTimeProperty
MediaPlayerを停止せずにメディアを再生できる量を示す現在のバッファの位置。 これは、ネットワーク接続から読み取る場合などのバッファされるストリームに適用され、ローカル・ファイルなどには適用されません。 
 bufferProgressTimeを超える位置に移動すると、再生の再開が可能になる十分な量のデータがバッファされるまで再生がわずかに一時停止します。
getBufferProgressTime()public IntegerProperty cycleCountProperty
cycleCountは1に設定され、これはメディアが1回のみ再生されることを意味します。 cycleCountを1より大きい値に設定すると、メディアは指定された回数または停止されるまで再生されます。 INDEFINITEに設定すると、再生はstop()またはpause()が呼び出されるまで繰り返されます。 
 constraints: cycleCount ≥ 1
public ReadOnlyIntegerProperty currentCountProperty
startTimeに戻る直前、つまりstopTimeまたはメディアの終わりに達したときに増分されます。 getCurrentCount()public BooleanProperty muteProperty
trueは、オーディオが再生されていないことを示します。 このプロパティの値はvolumeに影響せず、オーディオがミュートされた後ミュート解除され、volumeプロパティがその間に変更されなかった場合は、オーディオの再生は同じ音量レベルで再開されます。 デフォルト値はfalseです。 isMute()、setMute(boolean)public ObjectProperty<EventHandler<MediaMarkerEvent>> onMarkerProperty
currentTimeがメディア・マーカーに達する場合に起動されるイベント・ハンドラ。public ObjectProperty<Runnable> onEndOfMediaProperty
currentTimeがstopTimeに達する場合に起動されるイベント・ハンドラ。public ObjectProperty<Runnable> onReadyProperty
READYに変更されると起動されるイベント・ハンドラ。public ObjectProperty<Runnable> onPlayingProperty
PLAYINGに変更されると起動されるイベント・ハンドラ。public ObjectProperty<Runnable> onPausedProperty
PAUSEDに変更されると起動されるイベント・ハンドラ。public ObjectProperty<Runnable> onStoppedProperty
STOPPEDに変更されると起動されるイベント・ハンドラ。public ObjectProperty<Runnable> onHaltedProperty
HALTEDに変更されると起動されるイベント・ハンドラ。public ObjectProperty<Runnable> onRepeatProperty
currentTimeがstopTimeに達し、繰り返す場合に起動されるイベント・ハンドラ。 startTimeの位置に戻る前に、コールバックが実行されます。 public ObjectProperty<Runnable> onStalledProperty
STALLEDに変更されると起動されるイベント・ハンドラ。public IntegerProperty audioSpectrumNumBandsProperty
[0.0, 22050] Hzです。 この場合のスペクトル・バンドの数が10に設定されている場合、このスペクトルの各周波数ビンの幅は2205 Hzとなり、最も低い周波数ビンの下限は0.0に等しくなります。 public DoubleProperty audioSpectrumIntervalProperty
0.1秒です。 public IntegerProperty audioSpectrumThresholdProperty
public ObjectProperty<AudioSpectrumListener> audioSpectrumListenerProperty
たとえば、再生中のオーディオの周波数スペクトルをプロットしたり、ミュージック・ビジュアライザの波形を生成する場合に、AudioSpectrumListenerが役立つ場合があります。
public static final int INDEFINITE
cycleCountがこの値に設定されている場合、プレイヤは停止または一時停止されるまでMediaの再生を繰り返します。 public MediaPlayer(Media media)
MediaオブジェクトをMediaPlayerと関連付ける唯一の方法です。プレイヤが作成されると、これを変更することはできません。 コンストラクタ内で同期的に発生するエラーにより、例外がスローされます。 非同期で発生するエラーによりerrorプロパティが設定され、その結果任意のonErrorコールバックが起動されます。 
 作成されると、プレイヤのstatusがMediaPlayer.Status.UNKNOWNになります。 statusがMediaPlayer.Status.READYに遷移すると、プレイヤは使用可能な状態になります。 プレイヤの作成からREADYステータスに入るまでの時間は、メディアがネットワーク接続を介して読み取られるかローカル・ファイル・システムから読み取られるかなどのことによって異なります。 
media - 再生するメディア。NullPointerException - メディアがnullである場合。MediaException - コンストラクタ内でなんらかの同期エラーが発生した場合。public final AudioEqualizer getAudioEqualizer()
AudioEqualizerを取得します。AudioEqualizerまたはnull (プレイヤが破棄された場合)public final MediaException getError()
errorプロパティの値またはエラーがない場合はnullを取得します。MediaExceptionまたはnull。public ReadOnlyObjectProperty<MediaException> errorProperty()
MediaExceptionに設定される監視可能プロパティ。getError()public final void setOnError(Runnable value)
value - イベント・ハンドラまたはnull。public final Runnable getOnError()
public ObjectProperty<Runnable> onErrorProperty()
public final void setAutoPlay(boolean value)
autoPlayプロパティ値を設定します。value - 自動再生を有効にするかどうかpublic final boolean isAutoPlay()
autoPlayプロパティ値を取得します。public BooleanProperty autoPlayProperty()
falseです。 public void play()
startTimeから開始します。 再生が実際に開始されると、statusはMediaPlayer.Status.PLAYINGに設定されます。 public void pause()
statusはMediaPlayer.Status.PAUSEDに設定されます。 public void stop()
startTimeにリセットされ、currentCountがゼロにリセットされます。 プレイヤが実際に停止されると、statusはMediaPlayer.Status.STOPPEDに設定されます。 STOPPEDステータスからの遷移先はMediaPlayer.Status.PAUSEDおよびMediaPlayer.Status.PLAYINGのみであり、それぞれpause()またはplay()の起動後に発生します。 停止中は、プレイヤはseek(javafx.util.Duration)による再生位置変更リクエストには応答しません。 public final void setRate(double value)
[0.0, 8.0]の範囲に固定されます。 このメソッドの起動は、メディアの期間がDuration.INDEFINITEである場合には効果がありません。 value - 再生速度public final double getRate()
public DoubleProperty rateProperty()
1.0の速度ではメディアは通常の(エンコードされた)再生速度で再生され、2.0では通常速度の2倍で再生されます。現在サポートされているレートの範囲は[0.0, 8.0]です。 デフォルト値は1.0です。 getRate()、setRate(double)public final double getCurrentRate()
public ReadOnlyDoubleProperty currentRateProperty()
rateが1.0に設定され、プレイヤが一時停止または停止している場合、currentRateはゼロになります。 getCurrentRate()public final void setVolume(double value)
[0.0, 1.0]の範囲に固定されます。 value - 音量public final double getVolume()
1.0です。 public DoubleProperty volumeProperty()
[0.0 1.0]で、ここで0.0は無音、1.0はフル音量(デフォルト)です。 getVolume()、setVolume(double)public final void setBalance(double value)
[-1.0, 1.0].の範囲に固定されます。 value - バランスpublic final double getBalance()
public DoubleProperty balanceProperty()
[-1.0, 1.0]で、-1.0は左に振切り、0.0はセンター、1.0は右に振切りです。 デフォルト値は、0.0です。 public final void setStartTime(Duration value)
[Duration.ZERO, stopTime)の範囲に固定されます。 このメソッドの起動は、メディアの期間がDuration.INDEFINITEである場合には効果がありません。 value - 開始時間public final Duration getStartTime()
Duration.ZEROです。 public ObjectProperty<Duration> startTimeProperty()
Duration.ZEROです。 
 制約: 0 ≤ startTime < stopTime
public final void setStopTime(Duration value)
(startTime, Media.duration]の範囲に固定されます。 このメソッドの起動は、メディアの期間がDuration.INDEFINITEである場合には効果がありません。 value - 停止時間public final Duration getStopTime()
getMedia().getDuration()Media.durationDuration.UNKNOWNになる可能性があります。 public ObjectProperty<Duration> stopTimeProperty()
getMedia().getDuration()制約: startTime < stopTime ≤ Media.duration
public final Duration getCycleDuration()
public ReadOnlyObjectProperty<Duration> cycleDurationProperty()
startTimeとstopTime間の時間。 メディアの合計期間については、Media.durationプロパティを使用します。 getCycleDuration()public final Duration getTotalDuration()
public ReadOnlyObjectProperty<Duration> totalDurationProperty()
cycleCountがINDEFINITEに設定されている場合、これもINDEFINITEとなります。 メディア期間がUNKNOWNである場合、これも同様にUNKNOWNとなります。 それ以外の場合、合計期間はcycleDurationとcycleCountにより決まります。 getTotalDuration()public final Duration getCurrentTime()
public ReadOnlyObjectProperty<Duration> currentTimeProperty()
seek(javafx.util.Duration)を使用します。 getCurrentTime()public void seek(Duration seekTime)
MediaPlayer.Status.STOPPEDである場合、またはメディア期間がDuration.INDEFINITEである場合には効果がありません。 
 seek()の動作は次のように制約されます。開始時間および停止時間はそれぞれメディア再生の有効な下限および上限を示しています。
 
| seekTime | 移動先の位置 | 
|---|---|
| null | 変更なし | 
| Duration.UNKNOWN | 変更なし | 
| Duration.INDEFINITE | 停止時間 | 
| seekTime < 開始時間 | 開始時間 | 
| seekTime > 停止時間 | 停止時間 | 
| 開始時間 ≤ seekTime ≤ 停止時間 | seekTime | 
seekTime - リクエストされた再生時間public final MediaPlayer.Status getStatus()
public ReadOnlyObjectProperty<MediaPlayer.Status> statusProperty()
getStatus()public final Duration getBufferProgressTime()
bufferProgressTime値を取得します。public ReadOnlyObjectProperty<Duration> bufferProgressTimeProperty()
MediaPlayerを停止せずにメディアを再生できる量を示す現在のバッファの位置。 これは、ネットワーク接続から読み取る場合などのバッファされるストリームに適用され、ローカル・ファイルなどには適用されません。 
 bufferProgressTimeを超える位置に移動すると、再生の再開が可能になる十分な量のデータがバッファされるまで再生がわずかに一時停止します。
getBufferProgressTime()public final void setCycleCount(int value)
[1,Integer.MAX_VALUE]に制約されます。 このメソッドの起動は、メディアの期間がDuration.INDEFINITEである場合には効果がありません。 value - サイクル・カウントpublic final int getCycleCount()
public IntegerProperty cycleCountProperty()
cycleCountは1に設定され、これはメディアが1回のみ再生されることを意味します。 cycleCountを1より大きい値に設定すると、メディアは指定された回数または停止されるまで再生されます。 INDEFINITEに設定すると、再生はstop()またはpause()が呼び出されるまで繰り返されます。 
 constraints: cycleCount ≥ 1
public final int getCurrentCount()
public ReadOnlyIntegerProperty currentCountProperty()
startTimeに戻る直前、つまりstopTimeまたはメディアの終わりに達したときに増分されます。 getCurrentCount()public final void setMute(boolean value)
muteProperty()の値を設定します。value - muteの設定public final boolean isMute()
muteProperty()値を取得します。public BooleanProperty muteProperty()
trueは、オーディオが再生されていないことを示します。 このプロパティの値はvolumeに影響せず、オーディオがミュートされた後ミュート解除され、volumeプロパティがその間に変更されなかった場合は、オーディオの再生は同じ音量レベルで再開されます。 デフォルト値はfalseです。 isMute()、setMute(boolean)public final void setOnMarker(EventHandler<MediaMarkerEvent> onMarker)
onMarker - マーカー・イベント・ハンドラpublic final EventHandler<MediaMarkerEvent> getOnMarker()
public ObjectProperty<EventHandler<MediaMarkerEvent>> onMarkerProperty()
currentTimeがメディア・マーカーに達する場合に起動されるイベント・ハンドラ。public final void setOnEndOfMedia(Runnable value)
value - イベント・ハンドラまたはnull。public final Runnable getOnEndOfMedia()
null。public ObjectProperty<Runnable> onEndOfMediaProperty()
currentTimeがstopTimeに達する場合に起動されるイベント・ハンドラ。public final void setOnReady(Runnable value)
MediaPlayer.Status.READYイベント・ハンドラを設定します。value - イベント・ハンドラまたはnull。public final Runnable getOnReady()
MediaPlayer.Status.READYイベント・ハンドラを取得します。null。public ObjectProperty<Runnable> onReadyProperty()
READYに変更されると起動されるイベント・ハンドラ。public final void setOnPlaying(Runnable value)
MediaPlayer.Status.PLAYINGイベント・ハンドラを設定します。value - イベント・ハンドラまたはnull。public final Runnable getOnPlaying()
MediaPlayer.Status.PLAYINGイベント・ハンドラを取得します。null。public ObjectProperty<Runnable> onPlayingProperty()
PLAYINGに変更されると起動されるイベント・ハンドラ。public final void setOnPaused(Runnable value)
MediaPlayer.Status.PAUSEDイベント・ハンドラを設定します。value - イベント・ハンドラまたはnull。public final Runnable getOnPaused()
MediaPlayer.Status.PAUSEDイベント・ハンドラを取得します。null。public ObjectProperty<Runnable> onPausedProperty()
PAUSEDに変更されると起動されるイベント・ハンドラ。public final void setOnStopped(Runnable value)
MediaPlayer.Status.STOPPEDイベント・ハンドラを設定します。value - イベント・ハンドラまたはnull。public final Runnable getOnStopped()
MediaPlayer.Status.STOPPEDイベント・ハンドラを取得します。null。public ObjectProperty<Runnable> onStoppedProperty()
STOPPEDに変更されると起動されるイベント・ハンドラ。public final void setOnHalted(Runnable value)
MediaPlayer.Status.HALTEDイベント・ハンドラを設定します。value - イベント・ハンドラまたはnull。public final Runnable getOnHalted()
MediaPlayer.Status.HALTEDイベント・ハンドラを取得します。null。public ObjectProperty<Runnable> onHaltedProperty()
HALTEDに変更されると起動されるイベント・ハンドラ。public final void setOnRepeat(Runnable value)
value - イベント・ハンドラまたはnull。public final Runnable getOnRepeat()
null。public ObjectProperty<Runnable> onRepeatProperty()
currentTimeがstopTimeに達し、繰り返す場合に起動されるイベント・ハンドラ。 startTimeの位置に戻る前に、コールバックが実行されます。 public final void setOnStalled(Runnable value)
MediaPlayer.Status.STALLEDイベント・ハンドラを設定します。value - イベント・ハンドラまたはnull。public final Runnable getOnStalled()
MediaPlayer.Status.STALLEDイベント・ハンドラを取得します。null。public ObjectProperty<Runnable> onStalledProperty()
STALLEDに変更されると起動されるイベント・ハンドラ。public final void setAudioSpectrumNumBands(int value)
value - スペクトル・バンドの数、valueは2以上public final int getAudioSpectrumNumBands()
public IntegerProperty audioSpectrumNumBandsProperty()
[0.0, 22050] Hzです。 この場合のスペクトル・バンドの数が10に設定されている場合、このスペクトルの各周波数ビンの幅は2205 Hzとなり、最も低い周波数ビンの下限は0.0に等しくなります。 public final void setAudioSpectrumInterval(double value)
value - スペクトル更新間隔を指定する正の値public final double getAudioSpectrumInterval()
public DoubleProperty audioSpectrumIntervalProperty()
0.1秒です。 public final void setAudioSpectrumThreshold(int value)
value - スペクトルしきい値(dB)。0以下にする必要があります。public final int getAudioSpectrumThreshold()
public IntegerProperty audioSpectrumThresholdProperty()
public final void setAudioSpectrumListener(AudioSpectrumListener listener)
listener - スペクトル・リスナーまたはnull。public final AudioSpectrumListener getAudioSpectrumListener()
nullpublic ObjectProperty<AudioSpectrumListener> audioSpectrumListenerProperty()
たとえば、再生中のオーディオの周波数スペクトルをプロットしたり、ミュージック・ビジュアライザの波形を生成する場合に、AudioSpectrumListenerが役立つ場合があります。
public void dispose()
Status.DISPOSEDに遷移します。 このメソッドは、随時、現在のプレイヤのステータスに関連して呼び出すことができます。 Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.