MediaPlayer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 はスレッド セーフではありません。 プレーヤー インスタンスの作成とプレーヤー インスタンスへのすべてのアクセスは、同じスレッド上に存在する必要があります。 コールバックを登録する場合、スレッドには 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 開発者ガイドを参照してください。
</部>
"StateDiagram"><h3>State Diagram</h3>
オーディオ/ビデオ ファイルとストリームの再生制御は、ステート マシンとして管理されます。 次の図は、サポートされている再生制御操作によって駆動される MediaPlayer オブジェクトのライフ サイクルと状態を示しています。 楕円は、MediaPlayer オブジェクトが存在する可能性がある状態を表します。 円弧は、オブジェクトの状態遷移を駆動する再生制御操作を表します。 円弧には 2 種類があります。 1 つの矢印ヘッドを持つ円弧は同期メソッド呼び出しを表し、二重矢印ヘッドを持つ円弧は非同期メソッド呼び出しを表します。
<img src="../../../images/mediaplayer_state_diagram.gif" alt="MediaPlayer 状態図" border="0" />
この状態図から、MediaPlayer オブジェクトに次の状態があることを確認できます。
<ul><li>MediaPlayer オブジェクトがを使用して new
作成された直後または 後 #reset()
にが呼び出されると、そのオブジェクトは <em>Idle</em> 状態になり、after #release()
が呼び出されると、そのオブジェクトは <em>End</em> 状態になります。 これら 2 つの状態の間には、MediaPlayer オブジェクトのライフ サイクルがあります。 <ul><li>新しく構築された MediaPlayer オブジェクトと、 が呼び出された後 #reset()
の MediaPlayer オブジェクトの間には、微妙ですが重要な違いがあります。 どちらの場合も、em Idle/em> 状態で、#getDuration()
#getVideoHeight()
、、#getVideoWidth()
、#setAudioAttributes(AudioAttributes)
、#setLooping(boolean)
、 #pause()
#start()
#prepareAsync()
#prepare()
#setVolume(float, float)
#stop()
#seekTo(long, int)
などの#getCurrentPosition()
メソッドを<呼び出すプログラミング エラーです。<> 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>> です。 実際、メソッドを使用したcreate
作成が成功した場合、オブジェクトは <em>Prepared</em> 状態になります。 </li></ul></li li>><一般に、サポートされていないオーディオ/ビデオ形式、インターリーブが不十分なオーディオ/ビデオ、解像度が高すぎる、ストリーミング タイムアウトなど、さまざまな理由により、一部の再生制御操作が失敗する可能性があります。 したがって、このような状況では、エラーの報告と回復が重要な懸念事項です。 場合によっては、プログラミング エラーが原因で、無効な状態で再生制御操作を呼び出すことも発生する可能性があります。 これらのすべてのエラー状態で、OnErrorListener が を介して事前に登録されている場合、内部プレーヤー エンジンは OnErrorListener.onError() メソッドを指定したユーザーを #setOnErrorListener(android.media.MediaPlayer.OnErrorListener)
呼び出します。 <ul><li>エラーが発生すると、エラー リスナーがアプリケーションによって登録されていない場合でも、MediaPlayer オブジェクトはエラー/em> 状態 (上記を除く) に入<<>ります。</li li>><em> Error/em> 状態にある <MediaPlayer オブジェクトを再利用し、エラー<から回復するには、 を呼び出して、#reset()
オブジェクトを <em>Idle</em> 状態に復元できます。</li li><>アプリケーションに OnErrorListener を登録して、内部プレーヤー エンジンからのエラー通知を探してもらうのは、適切なプログラミングプラクティスです。</li li>><IllegalStateException がスローされ、、、またはオーバーロードされたsetDataSource
メソッドの 1 つを無効な状態で呼び出す#prepare()
#prepareAsync()
などのプログラミング エラーが発生しないようにします。 </li></ul></li li>><Calling 、、、、#setDataSource(String)
または 、、#setDataSource(Context, Uri)
または #setDataSource(FileDescriptor, long, long)
を呼び出#setDataSource(FileDescriptor)
すか#setDataSource(MediaDataSource)
、em>Idle</em> 状態の <MediaPlayer オブジェクトを em>Initialized</em> 状態に<転送します。 <ul><li>他の状態で setDataSource() が呼び出されると、IllegalStateException がスローされます。</li li><>常に見てIOException
IllegalArgumentException
、オーバーロードされたsetDataSource
メソッドからスローされる可能性があるプログラミングプラクティスです。</li></ul></li li><>MediaPlayer オブジェクトは、再生を開始する前に<、まず em>Prepared</em> 状態を入力する必要があります。 <ul><li>em Prepared</em> 状態に到達できる 2 つの方法 (同期と非同期)>< があります。これは、メソッド呼び出しが戻った後にオブジェクトを #prepare()
em>Prepared</em> 状態に<転送する (同期) 呼び出しか、最初にオブジェクトを em>準備</em> に#prepareAsync()
転送する <(非同期) 呼び出しです。内部プレーヤー エンジンが準備作業が完了するまで、準備作業の残りの部分に取り組み続けている間に、呼び出しが戻った後の状態 (ほぼすぐに発生します)。 準備が完了したとき、または呼び出しが戻ったときに#prepare()
、内部プレーヤー エンジンは、OnPreparedListener インターフェイスの onPrepared() でユーザーが指定したコールバック メソッドを呼び出します (OnPreparedListener が を介して#setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)
事前に登録されている場合)。</li li><>MediaPlayer オブジェクトが em Preparing<</em> 状態である間、em>準備/em> 状態は一時的な状態であり、副作用のあるメソッドを呼び出す動作は<>未定義であることに<注意してください。</li li><>他の状態で または #prepareAsync()
が呼び出されると、IllegalStateException がスローされます。<#prepare()
/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 が を介して#setOnBufferingUpdateListener(OnBufferingUpdateListener)
事前に登録されている場合、内部プレーヤー エンジンは OnBufferingUpdateListener.onBufferingUpdate() コールバック メソッドを指定したユーザーを呼び出します。<>>< このコールバックを使用すると、アプリケーションはオーディオ/ビデオのストリーミング中にバッファリングの状態を追跡できます。</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><>Calling #pause()
は、既に em>Paused</em> 状態の MediaPlayer オブジェクトには<影響しません。</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>><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 が を介して事前に登録されている場合、プレーヤー エンジンはユーザー指定のコールバック メソッド OnCompletion.onCompletion() を#setOnCompletionListener(OnCompletionListener)
呼び出します。 コールバックの呼び出しは、オブジェクトが 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><td>{Idle, Initialized, Error}</p></td td><>このメソッドを有効な状態で呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr tr><><td>getVideoHeight </p></td td><>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td td>{Error}</p></td td><>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。 </p></td></tr tr><><td>getVideoWidth </p></td td>><{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td 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<>td>{Started, Paused, PlaybackCompleted}</p></td 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<>td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td td td><>有効な状態でこのメソッドを正常に呼び出すと、オブジェクトが em>Prepared</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、IllegalStateException がスローされます。</p></td/tr tr<>td>><>< prepareAsync </p></td td><>{Initialized, Stopped}</p></td td<>td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></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><td>{}< /p></td td<>>#reset()
After , the object is like is 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, Startedd, Paused, PlaybackCompleted}</p></td><td td>{Error}</p></td td td><>このメソッドの呼び出しに成功しても、状態は変更されません。 ターゲット オーディオ属性の種類を有効にするには、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 td>{Error}</p></td td><>このメソッドの呼び出しに成功しても、状態は変更されません。 ターゲット オーディオ ストリームの種類を有効にするには、prepare() または prepareAsync() の前にこのメソッドを呼び出す必要があります。</p></td></tr tr><td>><setAuxEffectSendLevel </p></td td>><any</p></td td<>td>{}</p></td 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>><有効な状態でこのメソッドを呼び出すと、オブジェクトが em>Initialized</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、IllegalStateException がスローされます。</p></td></tr tr><td>><setDisplay </p></td td><>any </p></td td>{}<></p></td td td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr tr><><td>setSurface </p></td td><>any </p></td td>{}<></p></td td td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td/tr td><><>>< setVideoScalingMode </p></td td><>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td td>{Idle, Error}</p></td td<>>このメソッドの呼び出しに成功しても、状態は変更されません。</p></td></tr tr<>td>><setLooping </p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td td<>td>{Error}</p></td td><>有効な状態でこのメソッドを呼び出しても、状態は変更されません。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。</p></td></tr tr<>td>><isLooping </p></td td><>any </p></td td>{}<<>/p></td td>><このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></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 td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></tr td<><>>setOnPreparedListener </p></td td>><any </p></td td>>{}<</p></td td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td></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 td><>このメソッドは任意の状態で呼び出すことができます。呼び出してもオブジェクトの状態は変更されません。 </p></td/tr tr><td>><>< setVolume </p></td td>><{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td td td><>{Error}</p></td td><>このメソッドの呼び出しに成功しても、状態は変更されません。 <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 td><>有効な状態でこのメソッドを正常に呼び出すと、オブジェクトが em>Started</em> 状態に<転送されます。 無効な状態でこのメソッドを呼び出すと、オブジェクトが <em>Error</em> 状態に転送されます。</p></td></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>><このメソッドの呼び出しに成功しても、状態は変更されません。</p></td></tr td><><>addTimedTextSource </p></td td><>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td td><>{Idle, Initialized, Error}</p></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 <uses-permission>
要素を宣言する必要がある場合があります。
このクラスは、ネットワーク ベースの android.Manifest.permission#INTERNET
コンテンツで使用する場合に アクセス許可を必要とします。
"Callbacks"><h3>Callbacks</h3>
アプリケーションでは、内部状態の更新と、再生またはストリーミング中に発生する可能性のあるランタイム エラーを通知するために、情報イベントとエラー イベントに登録する必要がある場合があります。 これらのイベントの登録は、適切なリスナーを適切に#setOnPreparedListener(OnPreparedListener) setOnPreparedListener
設定することによって行われます (、、#setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener
、#setOnCompletionListener(OnCompletionListener) setOnCompletionListener
#setOnInfoListener(OnInfoListener) setOnInfoListener
#setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener
#setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener
、#setOnErrorListener(OnErrorListener) setOnErrorListener
、、などの呼び出しを使用)。 これらのリスナーに関連付けられているそれぞれのコールバックを受け取るには、独自の Looper が実行されているスレッドに MediaPlayer オブジェクトを作成する必要があります (既定では UI スレッドメインループャーが実行されています)。
の Java ドキュメント android.media.MediaPlayer
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
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 |
この |
CurrentPosition |
現在の再生位置を取得します。 |
Duration |
ファイルの期間を取得します。 |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
IsPlaying |
MediaPlayer が再生されているかどうかを確認します。 |
JniIdentityHashCode |
MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。 (継承元 Object) |
JniPeerMembers |
MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。 |
Looping |
MediaPlayer がループ中か非ループかを確認します。 または、プレーヤーをループまたは非ループに設定します。 |
Metrics |
現在のプレーヤーに関するメトリック データを返します。 |
PeerReference |
MediaPlayer クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。 (継承元 Object) |
PlaybackParams |
現在の再生速度を含む再生パラメーターを取得します。 または、 を使用して再生速度を |
PreferredDevice |
で指定された選択した出力を |
RoutedDevice |
|
SyncParams |
A/V 同期モードを取得します。 または、A/V 同期モードを設定します。 |
ThresholdClass |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
ThresholdType |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
Timestamp |
現在の再生位置を |
VideoHeight |
ビデオの高さを返します。 |
VideoWidth |
ビデオの幅を返します。 |
メソッド
AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler) |
|
AddTimedTextSource(Context, Uri, String) |
外部の時間指定テキスト ソース ファイル (Uri) を追加します。 |
AddTimedTextSource(FileDescriptor, Int64, Int64, String) |
外部の時間指定テキスト ファイル (FileDescriptor) を追加します。 |
AddTimedTextSource(FileDescriptor, String) |
外部の時間指定テキスト ソース ファイル (FileDescriptor) を追加します。 |
AddTimedTextSource(String, String) |
外部の時間指定テキスト ソース ファイルを追加します。 |
AttachAuxEffect(Int32) |
補助効果をプレーヤーにアタッチします。 |
ClearOnMediaTimeDiscontinuityListener() |
で以前に設定したリスナーをクリアします |
ClearOnSubtitleDataListener() |
または |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Create(Context, Int32) |
特定のリソース ID の MediaPlayer を作成するための便利なメソッド。 |
Create(Context, Int32, AudioAttributes, Int32) |
と同じファクトリ メソッド |
Create(Context, Uri) |
特定の Uri の MediaPlayer を作成する便利なメソッド。 |
Create(Context, Uri, ISurfaceHolder) |
特定の Uri の MediaPlayer を作成する便利なメソッド。 |
Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32) |
と同じファクトリ メソッド |
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() |
トラック情報の配列を返します。 |
JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションが判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
Pause() |
再生を一時停止します。 |
Prepare() |
プレーヤーの再生を同期的に準備します。 |
PrepareAsync() |
プレーヤーを非同期的に再生する準備をします。 |
PrepareDrm(UUID) |
現在のソースの DRM を準備します |
ProvideKeyResponse(Byte[], Byte[]) |
キー応答は、アプリによってライセンス サーバーから受信され、provideKeyResponse を使用して DRM エンジン プラグインに提供されます。 |
Release() |
この MediaPlayer オブジェクトに関連付けられているリソースを解放します。 |
ReleaseDrm() |
DRM セッションを解放する |
RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener) |
再ルーティング通知を |
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) |
メディアの |
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 から出力をルーティングするオーディオ デバイス ( |
SetScreenOnWhilePlaying(Boolean) |
接続されている SurfaceHolder を使用して、ビデオの再生中に画面をオンにしておく必要があるかどうかを制御します。 |
SetSurface(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 クラスを使用して、オーディオ/ビデオ ファイルとストリームの再生を制御できます。 |