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 的詳細資訊,請參閱 媒體播放 開發人員指南。
</div>
“StateDiagram”><h3>狀態圖</h3>
音訊/視訊檔案和數據流的播放控制是以狀態計算機管理。 下圖顯示支援的播放控件作業所驅動之 MediaPlayer 物件的生命週期和狀態。 橢圓形代表 MediaPlayer 物件可能位於的狀態。 弧線代表驅動物件狀態轉換的播放控制項作業。 弧線有兩種類型。 具有單一箭頭的弧線代表同步方法呼叫,而具有雙箭頭的弧形則代表異步方法呼叫。
<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>> 狀態。>< 這兩種狀態之間的是 MediaPlayer 物件的生命週期。 <ul><li>在呼叫 之後 #reset()
,新建構的 MediaPlayer 物件與 MediaPlayer 對象之間有微妙但重要的差異。 針對這兩種情況,叫用方法的程式設計錯誤,例如 #getCurrentPosition()
、#getDuration()
、#setAudioAttributes(AudioAttributes)
#getVideoWidth()
#getVideoHeight()
#start()
#setVolume(float, float)
#setLooping(boolean)
#pause()
、、 #prepare()
#seekTo(long, int)
#stop()
或 #prepareAsync()
<em>Idle</em> 狀態。 如果在建構 MediaPlayer 物件之後立即呼叫上述任何方法,則內部播放機引擎不會呼叫使用者提供的回呼方法 OnErrorListener.onError(),而且對象狀態會保持不變:但是,如果在之後 #reset()
呼叫這些方法,則內部播放機引擎會叫用使用者提供的回呼方法 OnErrorListener.onError(),而且物件將會傳送至 <em>Error</em> 狀態。 </li li><>您必須保留 MediaPlayer 實例的參考,以防止垃圾收集。 如果垃圾收集 MediaPlayer 實例, #release
將會呼叫 ,導致任何進行中的播放停止。 <li>一旦您完成使用 實體來釋放已取得的資源,例如記憶體和編解碼器,您必須呼叫 #release()
。 #release
呼叫 之後,您就不能再與已發行的實例互動。 <使用 建立的 li>MediaPlayer 物件處於 <em>Idle</em> 狀態,而使用其中一個多載便利create
方法所建立的物件則為 <em>Not</em 處於 <em>Idle</em>> 狀態。new
事實上,如果使用 create
方法建立成功,物件會處於 <em>Prepared</em> 狀態。 </li></ul></li li>><一般而言,某些播放控制作業可能會因為各種原因而失敗,例如不支援的音訊/視訊格式、低交錯的音訊/視訊、解析度太高、串流逾時等。 因此,在這些情況下,錯誤報告和復原是一個重要問題。 有時候,由於程式設計錯誤,叫用處於無效狀態的播放控件作業也可能發生。 在所有這些錯誤狀況下,如果已事先 #setOnErrorListener(android.media.MediaPlayer.OnErrorListener)
透過 註冊 OnErrorListener,內部播放機引擎會叫用使用者提供的 OnErrorListener.onError() 方法。 <ul><li>請務必注意,一旦發生錯誤,MediaPlayer 物件就會<進入 em>Error</em> 狀態(如上述所述),即使應用程式尚未註冊錯誤接聽程式也一樣。</li li><>若要重複使用處於 em Error</em>> 狀態且從錯誤中復原的 <MediaPlayer 物件,#reset()
可以呼叫 以將物件還原至其 <em>Idle</em> 狀態。</li li><>讓應用程式註冊 OnErrorListener 來尋找內部播放機引擎的錯誤通知是很好的程序設計做法。</li><li>IllegalStateException 擲回,以防止程式設計錯誤,例如呼叫 #prepare()
、 #prepareAsync()
或處於無效狀態的其中一個多載setDataSource
方法。 </li></ul<>/li li><>呼叫 #setDataSource(FileDescriptor)
、或 、 #setDataSource(String)
或#setDataSource(Context, Uri)
或 ,或 #setDataSource(FileDescriptor, long, long)
,或 #setDataSource(MediaDataSource)
會將 em Idle</em> 狀態中的 <MediaPlayer 物件傳輸至 <em>>Initialized</em> 狀態。 <ul><li>An IllegalStateException 會在任何其他狀態中呼叫 setDataSource() 時擲回。</li li><>最好一律留意IllegalArgumentException
,而且IOException
可能會從多載setDataSource
方法擲回。</li></ul<>/li li<>>A MediaPlayer 對象必須先進入 <em>Prepared</em> 狀態,才能開始播放。 <ul>li有兩種方式(同步與異步)<可以到達 em>Prepared</em> 狀態:一旦方法呼叫#prepare()
傳回,就會將物件傳輸至 <em>Prepared</em> 狀態,或先將對象傳送至 em Prepare/em 的呼叫,或先將對象傳送至 <em>Prepare</em> 的呼叫#prepareAsync()
><呼叫傳回之後的狀態(幾乎立即發生),而內部播放機引擎會繼續處理其餘的準備工作,直到準備工作完成為止。 當準備完成或呼叫傳回時#prepare()
,如果 OnPreparedListener 事先#setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)
註冊 OnPreparedListener 介面,內部播放程式引擎會呼叫使用者提供的回呼方法 onPreparedListener。</li li>><請務必注意<,em>Preparing</em 狀態是暫時性狀態,且在 MediaPlayer 對象處於 <em>Preparing</em>> 狀態時呼叫任何具有副作用的方法的行為未定義。</li li><>An IllegalStateException 會在任何其他狀態中呼叫 或 #prepareAsync()
時#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><>呼叫#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>呼叫 #start()
以繼續播放已暫停的 MediaPlayer 物件,且繼續播放位置與暫停的位置相同。 當呼叫#start()
傳回時,暫停的 MediaPlayer 物件會回到 <em>Started</em> 狀態。</li li><>呼叫#pause()
不會影響已經處於 em>Paused</em> 狀態的 <MediaPlayer 物件。</li>/ul<>/li>><呼叫#stop()
會停止播放,並導致 em>Started</em>、<em>Paused</em>、<em Prepared </>em 或 <em>>PlaybackCompleted</em 狀態中的 MediaPlayer <進入 <em>Stopped</em>> 狀態。< <ul><li>一旦處於 <em>Stopped</em> 狀態,播放就無法啟動,直到#prepare()
或#prepareAsync()
被呼叫將 MediaPlayer 物件設定為 <em>Prepared</em> 狀態為止。</li li><>呼叫#stop()
不會影響已經處於 em>Stopped</em> 狀態的 <MediaPlayer 物件。</li></ul<>/li li>><可以透過呼叫 #seekTo(long, int)
來調整播放位置。 <ul><li>雖然異步 #seekTo(long, int)
呼叫會立即傳回,但實際的搜尋作業可能需要一段時間才能完成,尤其是串流音訊/視訊。 當實際搜尋作業完成時,如果已事先#setOnSeekCompleteListener(OnSeekCompleteListener)
透過 註冊 OnSeekCompleteListener,內部播放器引擎會呼叫提供 OnSeekComplete.onSeekComplete() 的使用者。</li li><>請注意,#seekTo(long, int)
也可以在其他狀態呼叫,例如 <em>Prepared</em>、<em>Paused</em> 和 <em>PlaybackCompleted </em> state。 當在這些狀態中呼叫 時 #seekTo(long, int)
,如果數據流有視訊且要求的位置有效,則會顯示一個視訊畫面。 </li li>>< 此外,實際的目前播放位置可以使用 的#getCurrentPosition()
呼叫來擷取,這對於需要追蹤播放進度的音樂播放程式等應用程式很有説明。</li></ul></li li>><當播放到達數據流結尾時,播放就會完成。 <ul>li如果迴圈模式設定為 <var true</var,MediaPlayer #setLooping(boolean)
>> 物件應維持在 <em>Started</em> 狀態。<></li li><>如果迴圈模式設定為 <var>false </var>,則播放程式引擎會呼叫使用者提供的回呼方法 OnCompletion.onCompletion(),如果事先透過 #setOnCompletionListener(OnCompletionListener)
註冊 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>方法名稱 </p></><>td td 有效狀態 /p></td td 無效狀態 <</p></>><td td 批注 </p><></>><td/tr><tr><td>attachAuxEffect </p></td 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>任何 </p></td><td>{}</p></td td>><此方法可以在任何狀態中呼叫,而且呼叫此方法不會變更物件狀態。 </p/td></tr tr><<>td>getCurrentPosition </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>getDuration </p></td><td>{Prepared, Started, Paused, Stopped, PlaybackCompleted}/p/td td><td>{Idle, Initialized, Error}<</p><></td td><td>成功叫用此方法的有效狀態不會變更狀態。 以無效狀態呼叫這個方法會將對象傳送至 <em>Error</em> 狀態。 </p></td></tr><tr><td>getVideoHeight </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>getVideoWidth </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>isPlaying </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>>< 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 td>{Initialized, Stopped}/p></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>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}<</p></td td<>td td>成功叫用此方法的有效狀態,會將對象傳輸至 <em>Prepare</em> 狀態。 呼叫這個處於無效狀態的方法會擲回 IllegalStateException。</p></td></tr tr><><td>release </p/td><td>any </p><></td><td td>{}</p></td td<>>After #release()
,您不得與對象互動。 </p></td/tr tr><><td>>< reset </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p/td><td td>{}</p><></td td<>>After#reset()
, the object is like just 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>><成功叫用此方法不會變更狀態。 為了讓目標音訊屬性類型生效,必須在 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 之前必須知道音訊會話標識符。 呼叫它並不會變更對象狀態。 </p></td></tr tr><<>td>setAudioStreamType (deprecated)</p></td td<>>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}/p/td<>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><td>成功叫用此方法的有效狀態會將對象傳輸至 <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 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 td><>成功叫用此方法的有效狀態不會變更狀態。 以無效狀態呼叫這個方法會將對象傳送至 <em>Error</em> 狀態。</p></td></tr><tr><td>isLooping </p/td><td>任何 </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>任何 </p></td><td>{}</p></td td>><此方法可以在任何狀態下呼叫,而且呼叫此方法不會變更對象狀態。 </p></td></tr tr><><td>setOnErrorListener </p></td><td>任何 </p></td><td>{}</p></td td>><此方法可以在任何狀態中呼叫,而且呼叫此方法不會變更物件狀態。 </p></td></tr tr><><td>setOnPreparedListener </p></td><td>任何 </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><td>此方法在某些情況下會根據呼叫時變更狀態。 </p></td></tr tr><><td>setScreenOnWhilePlaying</></td>><td 任何 </p></td><td>{}</p></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 td><>成功叫用此方法不會變更狀態。 <tr><td>setWakeMode </p/td td><>任何 </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 tr><><td>>< stop </p></td><td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}/p/td 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<>td>{Idle, Initialized, Error}<</p><></td 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 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
、 #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener
、 #setOnCompletionListener(OnCompletionListener) setOnCompletionListener
、 #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener
、、 #setOnInfoListener(OnInfoListener) setOnInfoListener
、 #setOnErrorListener(OnErrorListener) setOnErrorListener
等等)。 為了接收與這些接聽程式相關聯的個別回呼,應用程式必須在執行自己的 Looper 的線程上建立 MediaPlayer 物件(根據預設,主要 UI 線程有循環器正在執行)。
的 android.media.MediaPlayer
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
MediaPlayer() |
預設建構函式。 |
MediaPlayer(Context) |
具有內容的預設建構函式。 |
MediaPlayer(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
欄位
MediaErrorIo |
已淘汰.
MediaPlayer 類別可用來控制音訊/視訊檔案和數據流的播放。 |
MediaErrorMalformed |
已淘汰.
MediaPlayer 類別可用來控制音訊/視訊檔案和數據流的播放。 |
MediaErrorTimedOut |
已淘汰.
MediaPlayer 類別可用來控制音訊/視訊檔案和數據流的播放。 |
MediaErrorUnsupported |
已淘汰.
MediaPlayer 類別可用來控制音訊/視訊檔案和數據流的播放。 |
MediaMimetypeTextSubrip |
SubRip (SRT) 容器的 MIME 類型。 |
VideoScalingModeScaleToFit |
已淘汰.
指定視訊縮放模式。 |
VideoScalingModeScaleToFitWithCropping |
已淘汰.
指定視訊縮放模式。 |
屬性
AudioSessionId |
傳回音訊會話標識碼。 -或- 設定音訊會話識別碼。 |
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 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
Timestamp |
以取得目前的播放位置 |
VideoHeight |
傳回視訊的高度。 |
VideoWidth |
傳回視訊的寬度。 |
方法
事件
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 類別可用來控制音訊/視訊檔案和數據流的播放。 |