次の方法で共有


MediaPlayer クラス

定義

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

[Android.Runtime.Register("android/media/MediaPlayer", DoNotGenerateAcw=true)]
public class MediaPlayer : Java.Lang.Object, Android.Media.IAudioRouting, Android.Media.IVolumeAutomation, IDisposable, Java.Interop.IJavaPeerable
[<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 and Invalid States<li Permissions<li>>Register informational and error callbacks</ol><<>

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

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

</div>

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

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

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

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

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

"Valid_and_Invalid_States"><h3>有効で無効な状態</h3>

<table border="0" cellspacing="0" cellpadding="0">tr td>Method Name </p></td<>td td>Valid States </p></td><td td>Invalid States </p></td<>td>Comments </p></td></tr tr td><><>attachAuxEffect </p></td><td td>{Initialized, 準備済み、開始済み、一時停止済み、停止済み、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 td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr tr<>td>><getCurrentPosition </p></td td>><{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td td><>{Error}</p></td 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><td>有効な状態でこのメソッドを正常に呼び出しても状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr td><>><getVideoHeight </p></td td><>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td td>><{Error}</p></td td><td>このメソッドを有効な状態で正常に呼び出しても状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr tr><><td>getVideoWidth </p></td td>><{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td td td><>このメソッドを有効な状態で正常に呼び出しても状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr tr><<>td>isPlaying </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, 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 td><>有効な状態でこのメソッドを正常に呼び出すと、オブジェクトが em>Paused</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。</p></td></tr tr><<>td>prepare </p></td><td>{Initialized, Stopped}</p></td td>><{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td td td><>valid state でこのメソッドを正常に呼び出すと、オブジェクトが em>Prepared</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、IllegalStateException がスローされます。</p></td></tr tr><><td>prepareAsync </p></td td>><{Initialized, Stopped}</p></td td><>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td td td><>有効な状態でこのメソッドを正常に呼び出すと、オブジェクトが em>Prepareing</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、IllegalStateException がスローされます。</p></td></tr tr td>><><release </p></td td td><>any </p></td td><>{}</p></td td<>>After#release(), you must interact with the object. </p></td></tr tr><><td>reset </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td td>{}<<>/p></td td td<>>After #reset(), the object is like like the created.</p></td></tr tr><><td>seekTo </p></td td>><{Prepared, Started, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Stopped, Error}</p></td td><td>このメソッドを有効な状態で呼び出しても状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr tr><><td>setAudioAttributes </p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td td td><>Successful invoke of this method does not change the state. ターゲット オーディオ属性の種類を有効にするには、prepare() または prepareAsync() の前にこのメソッドを呼び出す必要があります。</p></td></tr tr><><td>setAudioSessionId </p></td td>><{Idle}</p></td td>><{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td td td><>このメソッドは、setDataSource を呼び出す前にオーディオ セッション ID が既知である必要があります。アイドル状態で呼び出す必要があります。 呼び出しても、オブジェクトの状態は変更されません。 </p></td></tr tr<>td>><setAudioStreamType (非推奨)</p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td<>td>{Error}</p></td td><td>このメソッドの呼び出しに成功しても状態は変更されません。 ターゲット オーディオ ストリームの種類を有効にするには、prepare() または prepareAsync() の前にこのメソッドを呼び出す必要があります。</p></td></tr tr<>td>><setAuxEffectSendLevel </p></td td><>any</p></td td><td>{}</p></td td><>このメソッドを呼び出しても、オブジェクトの状態は変更されません。 </p></td></tr tr><><td>setDataSource </p></td td>><{Idle}</p></td td><>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td td td>><有効な状態でこのメソッドを呼び出すと、オブジェクトが em>Initialized</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、IllegalStateException がスローされます。</p></td></tr tr<>td>><setDisplay </p></td td><td>any </p></td td<>{}<>/p></td td><td>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr tr><td>><setSurface </p></td 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>><このメソッドの呼び出しに成功しても状態は変更されません。</p></td/tr td><><><> setLooping </p></td td><>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td td><>{Error}</p></td td td><>このメソッドを有効な状態で呼び出しても状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。</p></td></tr td>><<>isLooping </p></td td td>><any </p></td td>>{}<</p></td td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr tr><<>td>setOnBufferingUpdateListener </p></td 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 td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr tr<>td>><setOnErrorListener </p></td td td>><any </p></td td>>{}<</p></td td><td>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr tr><<>td>setOnPreparedListener </p></td 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 td><>any </p></td td><>{}</p></td td td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr tr><><td>setVolume </p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td td><>{Error}</p></td td><td>このメソッドの呼び出しに成功しても状態は変更されません。 <tr><td>setWakeMode </p></td td>><any </p></td td>{}<></p></td 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 td><>有効な状態でこのメソッドを正常に呼び出すと、オブジェクトが em>Started</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。</p></td></tr tr><><td>stop </p></td td>><{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Error}</p></td td td><>有効な状態でこのメソッドを正常に呼び出すと、オブジェクトが em>Stopped/em> 状態に<転送されます。< 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。</p></td></tr tr><td>><getTrackInfo </p></td td>><{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td>><{Idle, Initialized, Error}</p></td td<>td>このメソッドの呼び出しに成功しても状態は変更されません。</p></td></tr tr><><td>addTimedTextSource </p></td td>><{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td>><{Idle, Initialized, Error}</p></td td td<>>このメソッドを正常に呼び出しても状態は変更されません。</p></td></tr tr td>><><selectTrack </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Error}</p></td td>><このメソッドの呼び出しに成功しても状態は変更されません。</p></td></tr tr><<>td>deselectTrack </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td>><{Idle, Initialized, Error}</p></td td>><このメソッドの呼び出しに成功しても状態は変更されません。</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を介して 、 , #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener#setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener, #setOnCompletionListener(OnCompletionListener) setOnCompletionListener, #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener#setOnInfoListener(OnInfoListener) setOnInfoListener, , #setOnErrorListener(OnErrorListener) setOnErrorListener,など)。 これらのリスナーに関連付けられているそれぞれのコールバックを受け取るには、アプリケーションが独自の Looper を実行しているスレッド上に MediaPlayer オブジェクトを作成する必要があります (既定では、メイン UI スレッドには Looper が実行されています)。

の Java ドキュメントandroid.media.MediaPlayer

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

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

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

(継承元 Object)
JniPeerMembers

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

Looping

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

Metrics

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

PeerReference

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

(継承元 Object)
PlaybackParams

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

PreferredDevice

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

RoutedDevice

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

SyncParams

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

ThresholdClass

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

ThresholdType

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

Timestamp

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

VideoHeight

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

VideoWidth

ビデオの幅を返します。

メソッド

AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler)

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

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)
Create(Context, Int32)

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

Create(Context, Int32, AudioAttributes, Int32)

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

Create(Context, Uri)

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

Create(Context, Uri, ISurfaceHolder)

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

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

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

CreateVolumeShaper(VolumeShaper+Configuration)

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

DeselectTrack(Int32)

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

Dispose()

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

(継承元 Object)
Dispose(Boolean)

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

(継承元 Object)
Equals(Object)

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

(継承元 Object)
GetDrmInfo()

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

GetDrmPropertyString(String)

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

GetHashCode()

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

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

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

GetSelectedTrack(MediaTrackType)

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

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

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

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

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

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

SetDataSource(FileDescriptor)

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

SetDataSource(FileDescriptor, Int64, Int64)

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

SetDataSource(MediaDataSource)

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

SetDataSource(String)

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

SetDataSourceAsync(AssetFileDescriptor)

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

SetDataSourceAsync(Context, Uri)

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

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

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

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

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

SetDataSourceAsync(FileDescriptor)

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

SetDataSourceAsync(FileDescriptor, Int64, Int64)

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)

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

SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener, Handler)

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

SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener)

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

SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener, Handler)

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

SetOnErrorListener(MediaPlayer+IOnErrorListener)

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

SetOnInfoListener(MediaPlayer+IOnInfoListener)

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

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener)

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

SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler)

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

SetOnPreparedListener(MediaPlayer+IOnPreparedListener)

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

SetOnSeekCompleteListener(MediaPlayer+IOnSeekCompleteListener)

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

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener)

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

SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler)

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

SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener)

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

SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener)

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

SetOnVideoSizeChangedListener(MediaPlayer+IOnVideoSizeChangedListener)

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

SetPreferredDevice(AudioDeviceInfo)

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

SetScreenOnWhilePlaying(Boolean)

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

SetSurface(Surface)

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

SetVideoScalingMode(VideoScalingMode)

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

SetVolume(Single, Single)

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

SetWakeMode(Context, WakeLockFlags)

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

Start()

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

Stop()

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

ToArray<T>()

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

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

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

(継承元 Object)
Wait()

現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。

(継承元 Object)
Wait(Int64)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

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

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</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 クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(継承元 Object)
IJavaPeerable.Finalized()

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

(継承元 Object)
IJavaPeerable.JniManagedPeerState

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

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

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

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

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

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

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

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

適用対象