有關如何使用mediaplayer的更多資訊,請閱讀media playback開發人員指南。
statediagram(狀態圖)
從這個狀態圖,可以看到,乙個mediaplayer物件有以下狀態:
此外,使用new建立的mediaplayer物件處於idle狀態,而用乙個過載的構造方法new出來的mediaplayer物件不處在idle狀態。事實上,如果使用該構造方法成功建立乙個mediaplayer物件,該物件是在prepared 狀態。
。為了重用乙個處於錯誤狀態的mediaplayer物件,可以呼叫reset方法使這個物件從錯誤狀態轉換到idle狀態
。如果在其他任何狀態下呼叫 setdatasource() 都會產生乙個 illegalstateexception 異常
。一直監聽過載 setdatasource 方法產生的illegalargumentexception 和ioexception是乙個很好的程式設計習慣
。需要強調說明的是:preparing 狀態是乙個臨時狀態,如果mediaplayer物件處於preparing 狀態,呼叫其他方法,該物件產生的行為時不確定的。
。如果在其他狀態呼叫 prepare() or prepareasync()會丟擲乙個illegalstateexception 異常
。如果mediaplayer物件處於prepared 狀態,例如音訊音量,screenonwhileplaying,迴圈次數等屬性可以通過呼叫相應的set方法設定
。如果乙個對應已經處於started 狀態,再次呼叫start()將不會對該mediaplayer物件產生影響
。如果乙個物件已經處於paused 狀態,呼叫pause() 將不會對該mediaplayer物件產生任何影響
。如果乙個物件處於stopped狀態,呼叫stop()不會對該物件產生任何影響
。需要注意的是 seekto(int) 也可以在其他的狀態被呼叫,例如prepared, paused and playbackcompleted 狀態
。如果迴圈模式已被設定為true通過setlooping(boolean),mediaplayer物件將回到started狀態。
MediaPlayer生命週期
如果使用時mediaplayer的狀態不正確則會引發illegalstateexception異常。idle 狀態 當使用new 方法建立乙個mediaplayer物件或者呼叫了其reset 方法時,該mediaplayer物件處於idle狀態。這兩種方法的乙個重要差別就是 如果在這個狀態下呼叫了g...
android 的mediaPlayer一些屬性
方法 說明mediaplayer 構造方法 create getcurrentposition getduration 得到檔案的時間 getvideoheight getvideowidth islooping isplaying pause 暫停prepare 準備 同步 prepareasyn...
MediaPlayer控制項的初探
mediaplayer控制項為silverlight附帶的乙個附加在vs2008開發環境的乙個控制項。在初安裝silverlight2.0 for vs2008支援時,工具欄只多了2個選項,乙個是silverlight,另外乙個就是mediaplayer asp asp mediaplayer id...