1 / 20

Unit 12

Unit 12. MediaPlayer 元件 SurfaceView 元件語法 MediaPlayer 與 SurfaceView 結合 錄製音訊. 播放音訊視訊與錄音. 12.1 播放音訊. 越來越大的手機螢幕搭配功能強大的中央處理器,都是為了增強手機的多媒體效能;而今天能夠人手一支手機,強大的多媒體功能是主要原因之一。 使用手機聽音樂、看影片是手機族群除了電話功能外最常使用的功能,甚至要錄音也非難事。本章將製作這些功能應用軟體,詳細解說其中原理,讀者略做修改將可做出獨一無二的多媒體工具。. 12.1.1 MediaPlayer 元件

mari-mccall
Download Presentation

Unit 12

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unit 12 • MediaPlayer元件 • SurfaceView元件語法 • MediaPlayer與 SurfaceView結合 • 錄製音訊 播放音訊視訊與錄音

  2. 12.1 播放音訊 • 越來越大的手機螢幕搭配功能強大的中央處理器,都是為了增強手機的多媒體效能;而今天能夠人手一支手機,強大的多媒體功能是主要原因之一。 • 使用手機聽音樂、看影片是手機族群除了電話功能外最常使用的功能,甚至要錄音也非難事。本章將製作這些功能應用軟體,詳細解說其中原理,讀者略做修改將可做出獨一無二的多媒體工具。

  3. 12.1.1 MediaPlayer元件 • 首先製作播放音訊的工具。在 Android 中可以使用 MediaPlayer元件來播放音訊及視訊,MediaPlayer元件有許多方法可控制多媒體,常用方法如下表:

  4. 12.1.2 模擬器 SD 卡儲存檔案 • 多媒體檔案通常非常龐大,若使用可貴的手機系統記憶體來儲存,將是一種浪費,因此實作時大部分都把多媒體檔案存於 SD 記憶卡中。本章各節範例都需使用 SD 卡中的多媒體檔案,要將檔案複製到模擬器的 SD 卡中,可在 File Explorer 內操作。例如複製光碟 <ch14/mediafi le> 資料夾的 <greensleeves.mp3> 到模擬器的 SD 卡: • 在 EClipse整合環境中啟動模擬器,按Eclipse 整合環境右上角的DDMS,於 File Explorer 頁籤中點按要匯入檔案的資料夾, 此處點選 <mnt/sdcard>,按 匯入 鈕。

  5. 12.1.3 播放 SD 卡音訊 • 使用手機聽音樂是最基本的功能,在公共場所如公車、捷運、夜市等常看到年輕人戴著耳機聽手機歌曲。MediaPlayer元件可以播放多種格式的語音檔案,如:mp3、Midi、wav 及 ogg等。 • 要播放音訊 SD 卡中的音訊檔案,操作步驟如下: • 第一步當然是建立 MediaPlayer元件,例如建立一個名稱為 mediaplayer的 MediaPlayer元件:

  6. 12.1.4 範例:SD 卡音訊播放器 • 本範例是播放位於 SD 卡中音訊檔的播放軟體,不只有播放、暫停、停止等基本功能,而且能列出歌曲清單供點播,上一首、下一首、播完單曲後會自動播下一首,且結束最後一首後會回到第一首,循環不息。 • 螢幕下方列出 SD 卡中歌曲清單,點按歌曲名稱就會播放該歌曲,且在上方顯示歌曲名稱。六個按鈕功能依序為上一首、停止、播放、暫停、下一首、結束程式。播完單曲後會自動播下一首,在第一首按 鈕會到最後一首,同理,在最後一首按 鈕會到第一首。

  7. 12.1.5 播放資源檔案音訊 • 將多媒體檔案存放在 SD 卡上固然可以節省大量系統記憶體,但要發佈應用程式讓他人使用時,無法將 SD 卡中的檔案一起發佈。許多應用程式如遊戲軟體,會用到大量音效,這些音效大部分時間短暫,檔案很小,而且一定要隨應用程式一起發佈給他人使用,此時就要使用資源檔案音訊。 • 所謂資源檔案音訊就是將音訊檔案置於 <res/raw> 資料夾中,這樣就可以連應用程式一起發佈。取得資源檔案的方式為: • 播放資源音訊檔的方式與播放 SD 卡音訊檔並不完全相同,設定音訊檔案不是使用 setDataSource方法,而是使用 create 方法,語法為:

  8. 另外,prepare 方法一定要置於 try⋯catch偵錯區塊中,否則會產生錯誤。 • prepare 的語法為:

  9. 12.2 播放視訊 • 12.2.1 VideoView視訊播放器 • Android 系統內建了 VideoView元件用來播放視訊,使用此元件可輕易製作視訊播放器。VideoView元件的常用方法有:

  10. 使用 VideoView元件播放視訊檔案非常簡單,首先用 setVideoPath方法取得視訊檔案,語法為: • 在 VideoView元件可用 OnPreparedListener監聽事件來判斷是否正在播放視訊,其語法為:

  11. 12.2.2 範例:VideoView視訊播放器 • 點按下方 影片一 或 影片二 鈕就可播放影片,上方會顯示影片檔案名稱,移動控制軸或按下方控制鈕可改變影片播放位置。

  12. 12.2.3 SurfaceView元件語法 • SurfaceView繼承 View 類別,應用程式中繪圖、視訊播放及 Camera 照相等功能一般都使用 SurfaceView元件來呈現,為什麼呢?因為 SurfaceView元件可以控制顯示介面的格式,比如顯示的大小、位置等,而且 Android 還提供了 GPU 加速功能,能加快顯示速度。 • 對於 SurfaceView元件的存取,Android 提供了 SurfaceHolder類別來操作,使用 SurfaceView元件 的 getHolder方法即可取得 SurfaceHolder物件。 • 此處以建立一個顯示視訊的 SurfaceView元件為例:首先在版面配置檔中加入名稱為 sufVideo的 SurfaceView元件,接著建立 SurfaceHolder物件來操作 SurfaceView元件,語法為:

  13. 只要以 setType方法設定適當的來源模式就可讓應用程式顯示圖形或視訊了。setType方法的語法為: • 如 果 是 要 顯 示 SD 卡 中 視 訊 檔 案 或 照 相 等 外 部 資 訊,「 來 源 參 數 」 需 設 為「SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS」,表示顯示來源不是系統資源,而是由外部提供。例如要設定 sufHolder的來源模式:

  14. 12.2.4 MediaPlayer與 SurfaceView結合 • MediaPlayer元件結合 SurfaceView元件即可依照個人需求製作視訊播放器:由 MediaPlayer元件播放視訊,SurfaceView元件顯示視訊。 • 使用 MediaPlayer元件播放視訊,步驟如下: • 以 setAudioStreamType方 法 設 定 串 流 資 料 的 格 式 為 AudioManager.STREAM_MUSIC, 語法為 (MediaPlayer元件名稱為 mediaplayer ): • 再以 setDisplay方法設定顯示的 SurfaceView元件,SurfaceView元件需以 SurfaceHolder物件操作,所以 setDisplay方法的語法為:

  15. 12.2.5 範例:自訂格式視訊播放器 • 本範例視訊播放器功能、介面與操作都與上一節的播放音訊範例相同。

  16. 12.3 錄製音訊 • 12.3.1 MediaRecorder元件語法 • Android 提供 MediaRecorder元件來進行媒體採樣,MediaRecorder元件常用的方法如下表:

  17. 在 Android 中執行錄製音訊的步驟如下: • 的第一步是建立 MediaRecorder元件,例如建立名稱為 mediarecorder的 MediaRecorder元件: • 接著設定麥克風為輸入音訊來源: • 設定輸出檔案格式及音訊編碼方式皆為預設值:

  18. 12.3.2 範例:MediaRecorder錄音機 • 程式開啟後,會自動讀取 SD 卡中的錄音檔顯示於下方列表,點按檔名即可播放錄音檔。按 鈕就開始錄音,按 鈕停止錄音,按 鈕可播放剛錄的音訊檔,螢幕上方會隨時顯示目前的工作狀態。錄音檔自動以錄製的日期及時間組合做為檔案名稱,以記錄錄製時間。按鈕會隨不同功能變化,灰階表示按鈕無效。

More Related