知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
請問您們android課程有沒有上多媒體?
1樓
如題,謝謝!
2樓
多媒體如果指的只是如何放出影片和音樂. 那個目前課程內容己經塞很滿了 所以是沒有放進去特別介紹多媒體控制的細節,含影片, 音樂, 相片,   可能看需要的做到什麼程度,
如果是像相片瀏覽播放器那是有的Viedo和音樂那就沒有,因為那只是單純的一個多媒體播放元件你把檔案指給他就播放了
3樓
 
善用Java框架 四行程式寫完媒體播放器  

應用框架層提供Java API給上述應用程式層以利開發軟體,其中有供多媒體使用的類別,分別是負責播放的MediaPlayer類別,以及負責錄製的MediaRecorder類別。此外,還有VideoView這個更好使用的類別。  

MediaPlayer本身即是已經包裝完善的播放器,只須簡單的設定便可完成讀取檔案、播放/暫停、片段搜尋、取得媒體資訊、建立Listener等功能。低階工作如影音同步、Parse、解碼、算圖(Render)等都由底部函式庫完成。MediaRecorder目前由於底層函式庫不提供影片編碼功能,故僅能用以錄音,檔案格式為amr。使用時一樣只需簡單的初始化步驟即可。  

VideoView為可直接內含於XML Layout檔案(UI設計)的類別,它內含一個MediaPlayer,並實作所有MediaPlayer的方法。要播放影片時建議使用VideoView而非直接使用MediaPlayer。  

關於Java框架更詳細的介紹將保留到下期再說明,在此先展示幾段程式碼讓讀者體驗使用應用框架層中的Java框架來開發的簡易度。只須撰寫如下四行程式碼,就能夠開始播放指定的影片。  

//播放影片 _player=(VideoView) findViewById(R.id.videoplay); mURI=getIntent().getData(); _player.setVideoURI(mURI); _player.start();

除了播放媒體外,使用者可能會有多工需求,如想要一邊聽音樂一邊作其他事,故開發者在設計播放器時須能支援背景執行功能。在Android中,前景執行的程序叫做Activity,背景執行的程序叫做Service。兩者之間藉由ServiceConnection和AndRoid接口描述語言(AIDL)連結,達到複數程序同時執行的效果。  

在處理多媒體時,由於編解碼消耗的CPU時間相當大,嚴重時甚至會影響到其他程式執行。有鑑於此,Service中最好是只處理最低限的作業,也就是不處理任何和使用者介面(UI)有關或跟影片相關的程序,而僅作聲音相關的處理,以確保較佳的執行效果及使用者經驗。