多媒體應用:播放音樂與影片
講授:洪國龍老師

回首頁   影音播放器 - MediaPlayer   影片播放元件 - VideoView   範例練習  

  1. 影音播放器 - MediaPlayer

  • MediaPlayer類別
  • 提供音樂、影片及串流播放的API
  • 檔案來源可以是以下三種
  • 本地資源,如存放在記憶卡或開發專案時包裝至apk中的音、視訊檔案
  • 利用URI方式取得的內部資源
  • 利用URL方式取得外部資源,如網路上的檔案
如:http://www.xxxx.net/movie.mp4
  • MediaPlayer 元件有許多方法可控制多媒體,表列如下表:
  • MediaPlayer較常用的方法:
  • MediaPlayer.create(Context context,int id):指定 raw 資料夾下的檔案
  • setDataSource(String path):指定檔案路徑
  • prepare():準備播放
  • start()、pause()、stop()
  • setLooping(boolean loop)
  • setOnCompletionListener(OnCompletionListener listener):監聽播放完畢的狀態
  • 建立MediaPlayer物件的方法
    1. static MediaPlayer create(Context context, Uri uri)
    2. static MediaPlayer create(Context context, int resid)
    3. Ex: MediaPlayer  player=MediaPlayer.create(this, R.raw.sound);

      此為播放專案res/raw資料夾中的sound音樂

    4. 範例:

  • prepare()和prepareAsync()有何不同?
  • 如果遇到大型檔案或是需要從網路下載資料時,MediaPlayer需要一些時間來完成播放前的準備工作,如果這個準備工作是在主程式的main thread中執行,程式將會停止回應使用者的操作。
  • 如果換成使用prepareAsync()方法,它會另外建立一個background thread來執行準備工作,這樣主程式就可以繼續回應使用者的操作。
  • 範例:
  • [ 回頂端 ]

    1. 影片播放元件 - VideoView

  • VideoView介紹
  • 開發者可以直接以介面元件方式將VideoView放入介面佈局檔案中,再利用findViewById()方式取得元件控制
  • VideoView會自行以MediaPlayer播放影片資源,開發者不需要額外撰寫程式碼
  • 可與MediaController做連結,讓影片播放具有暫停、倒轉與快進等控制項
  • VideoView類別方法
  • void setVideoPath(String path) : 設定播放來源路徑
  • void setVideoURI (Uri uri) :以URI方式設定播放來源
  • void start () :開始播放影片
  • void pause () :暫停播放
  • void seekTo (int msec) :跳轉到指定毫秒數開始播放,參數單位為毫秒
  • void stopPlayback() :停止播放
  • int getCurrentPosition():取得目前播放位置 (msec)
  • void setMediaController (MediaController controller): 設定MediaController,讓影片播放具有控制項
  • void setOnCompletionListener (MediaPlayer.OnCompletionListener l) :設定監聽播放完成事件監聽器
  • [ 回頂端 ]
    1. 範例練習

      mm_resource.zip