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.Status
MediaPlayer の異なるステータス値を示す列挙。 |
修飾子と型 | フィールドと説明 |
---|---|
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
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.duration
の値がDuration.UNKNOWN
になる可能性があります。public ObjectProperty<Duration> stopTimeProperty()
getMedia()
.getDuration()
です。
制約: startTime
< stopTime ≤ Media.duration
public final Duration getCycleDuration()
public ReadOnlyObjectProperty<Duration> cycleDurationProperty()
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()
null
public ObjectProperty<AudioSpectrumListener> audioSpectrumListenerProperty()
たとえば、再生中のオーディオの周波数スペクトルをプロットしたり、ミュージック・ビジュアライザの波形を生成する場合に、AudioSpectrumListener
が役立つ場合があります。
public void dispose()
Status.DISPOSED
に遷移します。このメソッドは、随時、現在のプレイヤのステータスに関連して呼び出すことができます。Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.