Language

MediaPlayer クラス

定義

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

[Android.Runtime.Register("android/media/MediaPlayer", DoNotGenerateAcw=true)]
public class MediaPlayer : Java.Lang.Object, Android.Media.IAudioRouting, Android.Media.IVolumeAutomation, IDisposable
[<Android.Runtime.Register("android/media/MediaPlayer", DoNotGenerateAcw=true)>]
type MediaPlayer = class
    inherit Object
    interface IAudioRouting
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IVolumeAutomation
継承
MediaPlayer
属性
実装

注釈

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

MediaPlayer はスレッド セーフではありません。 プレイヤー インスタンスの作成とプレイヤー インスタンスへのすべてのアクセスは、同じスレッド上に存在する必要があります。 コールバックを登録する場合、スレッドには Looper が必要です。

ここで説明するトピックは、 <ol><li>State Diagram<li>Valid と Invalid States<li>Permissions<li>Register informational and error callbacks</ol です。>

<div class="special reference"><h3>Developer Guides</h3>

MediaPlayer の使用方法の詳細については、Media Playback 開発者ガイドを参照してください。

</部>

"StateDiagram"><h3>State Diagram</h3>

オーディオ/ビデオ ファイルとストリームの再生制御は、ステート マシンとして管理されます。 次の図は、サポートされている再生制御操作によって駆動される MediaPlayer オブジェクトのライフ サイクルと状態を示しています。 楕円は、MediaPlayer オブジェクトが存在する可能性がある状態を表します。 円弧は、オブジェクトの状態遷移を駆動する再生コントロール操作を表します。 円弧には 2 種類あります。 単一の矢印の頭を持つ円弧は同期メソッド呼び出しを表し、二重矢印ヘッドを持つ円弧は非同期メソッド呼び出しを表します。

<img src="../../../images/mediaplayer_state_diagram.gif" alt="MediaPlayer State diagram" border="0" />

この状態図から、MediaPlayer オブジェクトに次の状態があることを確認できます。

<ul><li>newを使用して作成した直後、または#reset()が呼び出された後に MediaPlayer オブジェクトが<em>Idle</em>状態になり、#release()が呼び出されると、<em>End</em> 状態になります。 これら 2 つの状態の間には、MediaPlayer オブジェクトのライフ サイクルがあります。 <ul><li>新しく構築された MediaPlayer オブジェクトと、 #reset() が呼び出された後の MediaPlayer オブジェクトの間には、微妙ですが重要な違いがあります。 どちらの場合も、 #getCurrentPosition()、 #getDuration()、 #getVideoHeight()、、 #getVideoWidth()#setAudioAttributes(AudioAttributes)、 #setLooping(boolean)、 #setVolume(float, float)、 #pause()、 #start()、 #stop()、 #seekTo(long, int)、 #prepare() 、 #prepareAsync() 、 <em>Idle</em> 状態などのメソッドを呼び出すプログラミング エラーです。 MediaPlayer オブジェクトが構築された直後にこれらのメソッドのいずれかが呼び出された場合、ユーザーが指定したコールバック メソッド OnErrorListener.onError() は内部プレーヤー エンジンによって呼び出されず、オブジェクトの状態は変更されません。ただし、これらのメソッドが #reset()直後に呼び出されると、ユーザーが指定したコールバック メソッド OnErrorListener.onError() が内部プレーヤー エンジンによって呼び出され、オブジェクトは <em>Error</em> 状態に転送されます。 </li><li>ガベージ コレクションされないようにするには、MediaPlayer インスタンスへの参照を保持する必要があります。 MediaPlayer インスタンスがガベージ コレクションされている場合は、 #release が呼び出され、進行中の再生が停止します。 <li>インスタンスを使用してメモリやコーデックなどの取得したリソースを解放したら、 #release() を呼び出す必要があります。 #releaseを呼び出したら、解放されたインスタンスとやり取りする必要はなくなります。 < >を使用して作成された linewMediaPlayer オブジェクトは <em>Idle</em> 状態ですが、オーバーロードされた便利なcreate メソッドのいずれかで作成されたオブジェクトは、<em>Idle</em>< 状態で>em<NOT>/em。 実際、< メソッドを使用した作成が成功した場合、オブジェクトは >em<Prepared>/emcreate 状態になります。 </li></ul></li><li>一般的には、サポートされていないオーディオ/ビデオ形式、不適切なインターリーブされたオーディオ/ビデオ、解像度が高すぎる、ストリーミング タイムアウトなど、さまざまな理由で一部の再生制御操作が失敗することがあります。 したがって、エラーの報告と回復は、このような状況では重要な懸念事項です。 プログラミング エラーが原因で、再生コントロール操作を無効な状態で呼び出すことも発生することがあります。 これらのすべてのエラー条件の下で、OnErrorListener が事前に #setOnErrorListener(android.media.MediaPlayer.OnErrorListener) 経由で登録されている場合、内部プレーヤー エンジンはユーザー指定の OnErrorListener.onError() メソッドを呼び出します。 <ul><li>エラーが発生すると、エラー リスナーが application.< によって登録されていない場合でも、MediaPlayer オブジェクトは >em<Error>/em< 状態になります (上記を除く)。/li><li><em> Error</em> 状態の MediaPlayer オブジェクトを再利用し、エラーから回復するには、#reset()を呼び出してオブジェクトを <em>Idle</em> 状態に復元できます。</li><li>アプリケーションで OnErrorListener を登録し、内部プレーヤー エンジンからのエラー通知を調べてください。</li><li>IllegalStateException は、#prepare()、#prepareAsync()、またはオーバーロードされたsetDataSource メソッドの 1 つを無効な状態で呼び出すなどのプログラミング エラーを防ぐためにスローされます。 </li></ul></li><li>Calling #setDataSource(FileDescriptor)、#setDataSource(String)、#setDataSource(Context, Uri)、#setDataSource(FileDescriptor, long, long)、または#setDataSource(MediaDataSource)<em>Idle</em>状態の MediaPlayer オブジェクトを <em>Initialized</em> 状態に転送します。 <ul><li> setDataSource() が他の状態で呼び出されると、IllegalStateException がスローされます。</li><li>オーバーロードされたIllegalArgumentExceptionメソッドからスローされる可能性があるIOExceptionとsetDataSourceを常に調べておくのが良いプログラミング方法です</li></ul></li><li>A MediaPlayer オブジェクトは、再生を開始する前に、まず <em>Prepared</em> 状態にする必要があります。 <ul><li><em>Prepared</em> 状態に到達できる 2 つの方法があります。メソッド呼び出しが戻ると、オブジェクトを #prepare()em<Prepared>/em< 状態に転送する> (同期) の呼び出しのいずれかです。 または、最初にオブジェクトを #prepareAsync()em<Preparing>/em に転送する< (非同期) の呼び出し>呼び出しが戻った後の状態 (ほぼすぐに発生します) は、内部プレーヤー エンジンが準備作業が完了するまで残りの準備作業に取り組み続けます。 準備が完了したとき、または#prepare()呼び出しが返されるときに、内部プレーヤー エンジンは、OnPreparedListener インターフェイスの onPrepared() というユーザー指定のコールバック メソッドを呼び出します (OnPreparedListener が #setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener).< を介して事前に登録されている場合)。/li><li><em>Preparing</em> 状態は一時的な状態であり、MediaPlayer オブジェクトが <em>Preparing</em> 状態の間に副作用のあるメソッドを呼び出す動作は未定義であることに注意してください</li><li>他の状態で#prepare()または#prepareAsync()が呼び出されると、IllegalStateException がスローされます。</li><li><em>Prepared</em> 状態では、オーディオ/サウンド ボリューム、screenOnWhilePlaying、ループなどのプロパティは、対応する set メソッドを呼び出すことによって調整できます。</li></ul></li><li>再生を開始するには、#start()を呼び出す必要があります。 #start()が正常に返されると、MediaPlayer オブジェクトは <em>Started</em> 状態になります。 #isPlaying() を呼び出して、MediaPlayer オブジェクトが <em>Started</em> 状態であるかどうかをテストできます。 <ul><li><em>Started</em> 状態では、OnBufferingUpdateListener が事前に登録されている場合、内部プレーヤー エンジンはユーザー指定の OnBufferingUpdateListener.onBufferingUpdate() コールバック メソッドを呼び出 #setOnBufferingUpdateListener(OnBufferingUpdateListener)。 このコールバックにより、アプリケーションはオーディオ/ビデオのストリーミング中にバッファリングの状態を追跡</li><li>Calling #start() は、既に <em>Started</em> 状態にある MediaPlayer オブジェクトには影響しません</li></ul></li><li>Playback を一時停止および停止でき、現在の再生位置を調整できます。 #pause()を使用して再生を一時停止できます。 #pause()の呼び出しが返されると、MediaPlayer オブジェクトは <em>Paused</em> 状態になります。 <em>Started</em> 状態から <em>Paused</em> 状態への遷移は、プレイヤー エンジンで非同期的に行われることに注意してください。 #isPlaying()の呼び出しで状態が更新されるまでに時間がかかる場合があり、ストリーミング コンテンツの場合は数秒かかることがあります。 <ul><li>一時停止中の MediaPlayer オブジェクトの再生を再開する #start() を呼び出し、再開された再生位置は一時停止した場所と同じです。 #start()の呼び出しが返されると、一時停止した MediaPlayer オブジェクトは <em>Started</em> state.< に戻ります。/li><li>Calling #pause() は、既に <em>Paused</em> 状態にある MediaPlayer オブジェクトには影響しません</li></ul></li><li>呼び出し#stop()は再生を停止し、<em>Started</em>で MediaPlayer を実行します <em>Paused</em>、<em>prepared </em> または <em>PlaybackCompleted</em> 状態で、<em>Stopped</em> 状態に入ります。 <ul><li><em>Stopped</em> 状態の場合、MediaPlayer オブジェクトを #prepare()em#prepareAsync()Prepared</em> 状態に再び設定するために<または>が呼び出されるまで再生を開始できません </li><li>Calling #stop() は、既に <em>Stopped</em> 状態にある MediaPlayer オブジェクトには影響しません</li></ul></li><li>再生位置は、#seekTo(long, int)の呼び出しで調整できます。 <ul><li>非同期の #seekTo(long, int) 呼び出しがすぐに返される場合、実際のシーク操作が完了するまでに時間がかかる場合があります(特に、ストリーミングされるオーディオ/ビデオの場合)。 実際のシーク操作が完了すると、OnSeekCompleteListener が事前に #setOnSeekCompleteListener(OnSeekCompleteListener).< 経由で登録されている場合、内部プレイヤー エンジンは OnSeekComplete.onSeekComplete() で指定されたユーザーを呼び出します。/li><li>#seekTo(long, int)は、<em>Prepared</em>、<em>Paused</em>、<em>PlaybackCompleted </em> 状態など、他の状態でも呼び出すことができることに注意してください。 これらの状態で #seekTo(long, int) が呼び出されると、ストリームにビデオがあり、要求された位置が有効な場合、1 つのビデオ フレームが表示されます。 </li><li>現在の再生位置は、 #getCurrentPosition()の呼び出しで取得できます。これは、再生の進行状況を追跡する必要がある音楽プレーヤーなどのアプリケーションに役立ちます</li></ul></li><li>再生がストリームの終わりに達すると、再生が完了します。 <ul><li>ループ モードが < で >var<true>/var#setLooping(boolean) に設定されていた場合、MediaPlayer オブジェクトは <em>Started</em> 状態のままです</li><li>ループ モードが <var>false </var> に設定されている場合、プレーヤー エンジンは、OnCompletionListener が #setOnCompletionListener(OnCompletionListener) 経由で事前に登録されている場合、ユーザーが指定したコールバック メソッド OnCompletion.onCompletion() を呼び出します。 コールバックの呼び出しは、オブジェクトが <em> PlaybackCompleted</em> state.< 内にあることを通知します。/li><li><em>PlaybackCompleted</em> 状態では、 #start() を呼び出すと、オーディオ/ビデオ ソースの先頭から再生を再開できます</li></ul>

"Valid_and_Invalid_States"><h3>Valid と無効な状態</h3>

<table border="0" cellspacing="0" cellpadding="0"><tr><td>Method Name </p></td><td>Valid States </p></td><td>Invalid States </p></td><td>Comments </p></td></tr><tr><td>attachAuxEffect </p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Idle, Error}</p></td><td>このメソッドは setDataSource の後に呼び出す必要があります。 呼び出しても、オブジェクトの状態は変更されません。 </p></td></tr><tr><td>getAudioSessionId </p></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>getCurrentPosition </p></td><td>{Idle, 初期化、準備、開始、一時停止、停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr><tr><td>getDuration </p></td><td>{Prepared, Started、Paused、Stopped、PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr><tr><td>getVideoHeight </p></td><td>{Idle, 初期化、準備、開始、一時停止、停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr><tr><td>getVideoWidth </p></td><td>{Idle, 初期化、準備、開始、一時停止、停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr><tr><td>isPlaying </p></td><td>{Idle, 初期化、準備、開始、一時停止、停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr><tr><td>pause </p></td><td>{Started, Paused,PlaybackCompleted}</p></td><td>{Idle, Initialized, Prepared, Stopped, Error}</p></td><td>Successful invoke of this method in a valid state transfers the object to the <em>Paused</em> state. 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> state.< に転送されます。/p></td></tr><tr><td>prepare </p></td><td>{Initialized, Stopped}</p></td><td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td><td>Successful invoke of this method in a valid state transfers the object to <em>Prepared</em> state. 無効な状態でこのメソッドを呼び出すと、IllegalStateException.< がスローされます。/p></td></tr><tr><td>prepareAsync </p></td><td>{Initialized, Stopped}</p></td><td>{Idle, 有効な状態でこのメソッドを準備、開始、一時停止、PlaybackCompleted、Error}</p></td><td>Successful 呼び出しは、オブジェクトを <em>Preparing</em> 状態に転送します。 無効な状態でこのメソッドを呼び出すと、IllegalStateException.< がスローされます。/p></td></tr><tr><td>release </p></td><td>any </p></td><td>{}</p></td><td>以降は、オブジェクトとやり取 #release()りしないでください。 </p></td></tr><tr><td>reset </p></td><td>{Idle, 初期化済み、準備済み、開始済み、一時停止済み、停止済み、PlaybackCompleted、Error}</p></td><td>{}</p></td><td>#reset()した後、オブジェクトは作成済みのようなものです</p></td></tr><tr><td>seekTo </p></td><td>{Prepared, Started、Paused、PlaybackCompleted}</p></td><td>{Idle、Initialized、Stopped、Error}</p></td><td>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr><tr><td>setAudioAttributes </p></td><td>{Idle, 初期化、停止、準備、開始、一時停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>Successful 呼び出しでは状態は変更されません。 ターゲット オーディオ属性の種類を有効にするには、prepare() または prepareAsync().<の前にこのメソッドを呼び出す必要があります。/p></td></tr><trtr><td>setAudioSessionId </p></td><td>{Idle}</p></td><td>{Initialized, 準備、開始、一時停止、停止、PlaybackCompleted、Error}</p></td><td>このメソッドは、setDataSource を呼び出す前にオーディオ セッション ID が認識されている必要があります。アイドル状態で呼び出す必要があります。 呼び出しても、オブジェクトの状態は変更されません。 </p></td></tr><tr><td>setAudioStreamType (非推奨)</p></td><td>{Idle, 初期化、停止、準備、開始、一時停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>Successful 呼び出しでは状態は変更されません。 ターゲット オーディオ ストリームの種類を有効にするには、prepare() または prepareAsync().<の前にこのメソッドを呼び出す必要があります。/p></td></tr><tr><td>setAuxEffectSendLevel </p></td><td></p></td><td>{}</p></td><td>このメソッドを呼び出しても、オブジェクトの状態は変更されません。 </p></td></tr><tr><td>setDataSource </p></td><td>{Idle}</p></td><td>{Initialized, 有効な状態でこのメソッドを準備、開始、一時停止、停止、PlaybackCompleted、Error}</p></td><td>Successful 呼び出しは、オブジェクトを <em>Initialized</em> 状態に転送します。 無効な状態でこのメソッドを呼び出すと、IllegalStateException.< がスローされます。/p></td></tr><tr><td>setDisplay </p></td><td>any < /p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>setSurface </p></td><td>any < /p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>setVideoScalingMode </p></td><td>{Initialized, Prepared、Started、Paused、Stopped、PlaybackCompleted}</p></td><td>{Idle, Error}</p></td><td>Successful invoke of this method does not change the state.</p></td></tr><tr><td>setLooping </p></td><td>{Idle, 初期化、停止、準備、開始、一時停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> state.< に転送されます。/p></td></tr><tr><td>isLooping </p></td><td>any < /p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>setOnBufferingUpdateListener </p></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>setOnCompletionListener </p></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができます。このメソッドを呼び出しても、オブジェクトの状態は変更されません。 </p></td></tr><tr><td>setOnErrorListener </p></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができます。このメソッドを呼び出しても、オブジェクトの状態は変更されません。 </p></td></tr><tr><td>setOnPreparedListener </p></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>setOnSeekCompleteListener </p></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>setPlaybackParams</p></td><td>{Initialized, Prepared、Started、Paused、PlaybackCompleted、Error}</p></td><td>{Idle, Stopped}</p></td><td>このメソッドは、呼び出し時に応じて状態を変更することがあります。 </p></td></tr><tr><td>setScreenOnWhilePlaying</></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができますが、呼び出してもオブジェクトの状態は変更されません。 </p></td></tr><tr><td>setVolume </p></td><td>{Idle, 初期化、停止、準備、開始、一時停止、PlaybackCompleted}</p></td><td>{Error}</p></td><td>Successful 呼び出しでは、状態は変更されません。 <tr><td>setWakeMode </p></td><td>any </p></td><td>{}</p></td><td>このメソッドは任意の状態で呼び出すことができます。このメソッドを呼び出しても、オブジェクトの状態は変更されません。</p></td></tr><tr><td>start </p></td><td>{Prepared, Started、Paused、PlaybackCompleted}</p></td><td>{Idle, Initialized, Stopped, Error}</p></td><td>Successful invoke of this method in a valid state transfers the object to the <em>Started</em> state. 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> state.< に転送されます。/p></td></tr><tr><td>stop </p></td><td>{Prepared, Started、Stopped、Paused、PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>Successful invoke of this method in a valid state transfers the object to the <em>Stopped</em> state. 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> state.< に転送されます。/p></td></tr><tr><td>getTrackInfo </p></td><td>{Prepared, Started、Stopped、Paused、PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>Successful invoke of this method does not change the state.</p></td></tr><tr><td>addTimedTextSource </p></td><td>{Prepared, Started、Stopped、Paused、PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>Successful invoke of this method does not change the state.</p></td></tr><tr><td>selectTrack </p></td><td>{Prepared, Started、Stopped、Paused、PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>Successful invoke of this method does not change the state.</p></td></tr><tr><td>deselectTrack </p></td><td>{Prepared, Started、Stopped、Paused、PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>Successful invoke of this method does not change the state.</p></td></tr>

</テーブル>

"Permissions"><h3>Permissions</h3>

要素に対応するWAKE_LOCKアクセス許可 android.R.styleable#AndroidManifestUsesPermission &lt;uses-permission&gt; 宣言する必要がある場合があります。

このクラスは、ネットワーク ベースのコンテンツと共に使用する場合、 android.Manifest.permission#INTERNET アクセス許可を必要とします。

"Callbacks"><h3>Callbacks</h3>

アプリケーションでは、内部状態の更新と、再生またはストリーミング中の実行時エラーの可能性を通知するために、情報イベントとエラー イベントを登録する必要がある場合があります。 これらのイベントの登録は、適切なリスナーを適切に設定することによって行われます ( #setOnPreparedListener(OnPreparedListener) setOnPreparedListener、 #setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener、 #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener、 #setOnCompletionListener(OnCompletionListener) setOnCompletionListener、 #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener、 #setOnInfoListener(OnInfoListener) setOnInfoListener、 #setOnErrorListener(OnErrorListener) setOnErrorListenerなどを呼び出します)。 これらのリスナーに関連付けられているそれぞれのコールバックを受信するには、アプリケーションが独自の Looper を実行しているスレッド上に MediaPlayer オブジェクトを作成する必要があります (既定では、メイン UI スレッドには Looper が実行されています)。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
MediaPlayer()

既定のコンストラクター

MediaPlayer(Context)

コンテキストを持つ既定のコンストラクター。

MediaPlayer(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

フィールド

名前 説明
MediaErrorIo
古い.

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

MediaErrorMalformed
古い.

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

MediaErrorTimedOut
古い.

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

MediaErrorUnsupported
古い.

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

MediaMimetypeTextSubrip

SubRip (SRT) コンテナーの MIME の種類。

VideoScalingModeScaleToFit
古い.

ビデオ スケーリング モードを指定します。

VideoScalingModeScaleToFitWithCropping
古い.

ビデオ スケーリング モードを指定します。

プロパティ

名前 説明
AudioSessionId

オーディオ セッション ID を返します。 または、オーディオ セッション ID を設定します。

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
CurrentPosition

現在の再生位置を取得します。

Duration

ファイルの期間を取得します。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsPlaying

MediaPlayer が再生されているかどうかを確認します。

JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
JniPeerMembers

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

Looping

MediaPlayer がループ中か非ループかを確認します。 または、プレイヤーをループまたは非ループに設定します。

Metrics

現在のプレイヤーに関するメトリック データを返します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
PlaybackParams

現在の再生速度を含む再生パラメーターを取得します。 または、 PlaybackParamsを使用して再生速度を設定します。

PreferredDevice

#setPreferredDeviceで指定された選択した出力を返します。

RoutedDevice

この MediaPlayer Note の現在のルーティングを識別する AudioDeviceInfo を返します。このクエリは、MediaPlayer が現在再生されている場合にのみ有効です。

RoutedDevices

この MediaPlayer の現在のルーティングを識別する AudioDeviceInfo のリストを返します。

SyncParams

A/V 同期モードを取得します。 または、A/V 同期モードを設定します。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

Timestamp

現在の再生位置を MediaTimestampとして取得します。

VideoHeight

ビデオの高さを返します。

VideoWidth

ビデオの幅を返します。

メソッド

名前 説明
AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler)

この MediaPlayer のルーティング変更の通知を受信する AudioRouting.OnRoutingChangedListener を追加します。

AddTimedTextSource(Context, Uri, String)

外部の時間指定テキスト ソース ファイル (Uri) を追加します。

AddTimedTextSource(FileDescriptor, Int64, Int64, String)

外部の時間指定テキスト ファイル (FileDescriptor) を追加します。

AddTimedTextSource(FileDescriptor, String)

外部の時間指定テキスト ソース ファイル (FileDescriptor) を追加します。

AddTimedTextSource(String, String)

外部の時間指定テキスト ソース ファイルを追加します。

AttachAuxEffect(Int32)

補助効果をプレイヤーにアタッチします。

ClearOnMediaTimeDiscontinuityListener()

以前に設定したリスナーをクリアします。 #setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener) または #setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener, Handler)

ClearOnSubtitleDataListener()

#setOnSubtitleDataListener(OnSubtitleDataListener)または#setOnSubtitleDataListener(OnSubtitleDataListener, Handler)で以前に設定したリスナーをクリアします。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
Create(Context, Int32, AudioAttributes, Int32)

#create(Context, int)と同じファクトリ メソッドですが、新しい MediaPlayer インスタンスで使用するオーディオ属性とセッション ID を指定できます。

Create(Context, Int32)

特定のリソース ID の MediaPlayer を作成する便利なメソッド。

Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32)

#create(Context, Uri, SurfaceHolder)と同じファクトリ メソッドですが、新しい MediaPlayer インスタンスで使用するオーディオ属性とセッション ID を指定できます。

Create(Context, Uri, ISurfaceHolder)

特定の URI の MediaPlayer を作成する便利なメソッド。

Create(Context, Uri)

特定の URI の MediaPlayer を作成する便利なメソッド。

CreateVolumeShaper(VolumeShaper+Configuration)

プレーヤーまたはトラックのボリューム エンベロープを変更するために使用できる VolumeShaper オブジェクトを返します。

DeselectTrack(Int32)

トラックの選択を解除します。

Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
Equals(Object)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetDrmInfo()

現在のソースに関連付けられている DRM 情報を取得します。

GetDrmPropertyString(String)

プロパティ名の文字列を指定して、DRM エンジン プラグインの String プロパティ値を読み取ります。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetKeyRequest(Byte[], Byte[], String, MediaDrmKeyType, IDictionary<String,String>)

暗号化されたコンテンツの暗号化解除に使用されるキーを取得または解放するために、アプリとライセンス サーバーの間でキーの要求/応答交換が行われます。

GetSelectedTrack(MediaTrackType)

再生のために現在選択されているオーディオ、ビデオ、またはサブタイトル トラックのインデックスを返します。戻り値は、 #getTrackInfo()によって返される配列へのインデックスであり、 #selectTrack(int) または #deselectTrack(int)の呼び出しで使用できます。

GetTrackInfo()

トラック情報の配列を返します。

JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Pause()

再生を一時停止します。

Prepare()

プレーヤーを同期的に再生する準備をします。

PrepareAsync()

プレーヤーを非同期的に再生する準備をします。

PrepareDrm(UUID)

現在のソースの DRM を準備します

ProvideKeyResponse(Byte[], Byte[])

キー応答は、アプリによってライセンス サーバーから受信され、provideKeyResponse を使用して DRM エンジン プラグインに提供されます。

Release()

この MediaPlayer オブジェクトに関連付けられているリソースを解放します。

ReleaseDrm()

DRM セッションを解放する

RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener)

再ルーティング通知を受信するために以前に追加された AudioRouting.OnRoutingChangedListener を削除します。

Reset()

MediaPlayer を初期化されていない状態にリセットします。

RestoreKeys(Byte[])

永続化されたオフライン キーを新しいセッションに復元します。

SeekTo(Int32)

指定した時刻位置をシークします。

SeekTo(Int64, MediaPlayerSeekMode)

指定されたモードを考慮して、メディアを指定した時間位置に移動します。

SelectTrack(Int32)

トラックを選択します。

SetAudioAttributes(AudioAttributes)

この MediaPlayer のオーディオ属性を設定します。

SetAudioStreamType(Stream)

この MediaPlayer のオーディオ ストリームの種類を設定します。

SetAuxEffectSendLevel(Single)

プレーヤーの送信レベルを、付属の補助効果に設定します。

SetDataSource(AssetFileDescriptor)

使用するデータ ソース (AssetFileDescriptor) を設定します。

SetDataSource(Context, Uri, IDictionary<String,String>, IList<HttpCookie>)

データ ソースをコンテンツ URI として設定します。

SetDataSource(Context, Uri, IDictionary<String,String>)

データ ソースをコンテンツ URI として設定します。

SetDataSource(Context, Uri)

データ ソースをコンテンツ URI として設定します。

SetDataSource(FileDescriptor, Int64, Int64)

使用するデータ ソース (FileDescriptor) を設定します。

SetDataSource(FileDescriptor)

使用するデータ ソース (FileDescriptor) を設定します。

SetDataSource(MediaDataSource)

使用するデータ ソース (MediaDataSource) を設定します。

SetDataSource(String)

使用するデータ ソース (ファイル パスまたは http/rtsp URL) を設定します。

SetDataSourceAsync(AssetFileDescriptor)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDataSourceAsync(Context, Uri, IDictionary<String,String>, IList<HttpCookie>)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDataSourceAsync(Context, Uri, IDictionary<String,String>)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDataSourceAsync(Context, Uri)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDataSourceAsync(FileDescriptor, Int64, Int64)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDataSourceAsync(FileDescriptor)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDataSourceAsync(MediaDataSource)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDataSourceAsync(String)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SetDisplay(ISurfaceHolder)

メディアのビデオ部分の表示に使用する SurfaceHolder を設定します。

SetDrmPropertyString(String, String)

DRM エンジン プラグインの String プロパティ値を設定します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetNextMediaPlayer(MediaPlayer)

この MediaPlayer の再生が完了したときに開始するように MediaPlayer を設定します (i.

SetOnBufferingUpdateListener(MediaPlayer+IOnBufferingUpdateListener)

ネットワーク ストリームのバッファーの状態が変更されたときに呼び出されるコールバックを登録します。

SetOnCompletionListener(MediaPlayer+IOnCompletionListener)

再生中にメディア ソースの末尾に到達したときに呼び出されるコールバックを登録します。

SetOnDrmConfigHelper(MediaPlayer+IOnDrmConfigHelper)

セッションが作成される前に、DRM オブジェクトの構成用に呼び出されるコールバックを登録します。

SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener, Handler)

DRM 情報がわかっている場合に呼び出されるコールバックを登録します。

SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener)

DRM 情報がわかっている場合に呼び出されるコールバックを登録します。

SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener, Handler)

DRM オブジェクトが準備されたときに呼び出されるコールバックを登録します。

SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener)

DRM オブジェクトが準備されたときに呼び出されるコールバックを登録します。

SetOnErrorListener(MediaPlayer+IOnErrorListener)

非同期操作中にエラーが発生したときに呼び出されるコールバックを登録します。

SetOnInfoListener(MediaPlayer+IOnInfoListener)

情報/警告が使用可能な場合に呼び出されるコールバックを登録します。

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler)

メディア時間の不連続が発生したときに呼び出されるリスナーを設定します。

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener)

メディア時間の不連続が発生したときに呼び出されるリスナーを設定します。

SetOnPreparedListener(MediaPlayer+IOnPreparedListener)

メディア ソースが再生の準備ができたときに呼び出されるコールバックを登録します。

SetOnSeekCompleteListener(MediaPlayer+IOnSeekCompleteListener)

シーク操作が完了したときに呼び出されるコールバックを登録します。

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler)

サブタイトル トラックに新しいデータが使用可能になったときに呼び出されるリスナーを設定します。

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener)

サブタイトル トラックに新しいデータが使用可能になったときに呼び出されるリスナーを設定します。

SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener)

選択したトラックに使用可能な時間指定メタデータがある場合に呼び出されるコールバックを登録します。

SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener)

時間指定されたテキストが表示可能な場合に呼び出されるコールバックを登録します。

SetOnVideoSizeChangedListener(MediaPlayer+IOnVideoSizeChangedListener)

ビデオ サイズが既知または更新されたときに呼び出されるコールバックを登録します。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
SetPreferredDevice(AudioDeviceInfo)

この MediaPlayer からの出力をルーティングするオーディオ デバイス ( AudioDeviceInfo オブジェクト経由) を指定します。

SetScreenOnWhilePlaying(Boolean)

ビデオ再生の実行中に、接続されている SurfaceHolder を使用して画面をオンにしておくかどうかを制御します。

SetSurface(Surface)

メディアのビデオ部分のシンクとして使用する Surface を設定します。

SetVideoScalingMode(VideoScalingMode)

ビデオスケーリングモードを設定します。

SetVolume(Single, Single)

このプレイヤーの音量を設定します。

SetWakeMode(Context, WakeLockFlags)

この MediaPlayer の低レベルの電源管理動作を設定します。

Start()

再生を開始または再開します。

Stop()

再生が開始または一時停止した後、再生を停止します。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

イベント

名前 説明
BufferingUpdate

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

Completion

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

DrmInfoEvent

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

DrmPrepared

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

Error

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

Info

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

MediaTimeDiscontinuity

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

Prepared

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

RoutingChanged

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SeekComplete

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

SubtitleData

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

TimedMetaDataAvailable

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

TimedText

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

VideoSizeChanged

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
IJavaPeerable.Finalized()

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象