




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Adroid移動開發(fā)模塊五:Android多媒體開發(fā) Android移動開發(fā)模塊五:Android多媒體開發(fā) 第1頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.1多媒體基礎(chǔ)知識OpenCore是Android多媒體框架的核心,所有Android平臺的音視頻采集,播放的操作都是通過它來實現(xiàn)。 基于第三方PacketVideo公司的OpenCORE來實現(xiàn),支持所有通用的音頻/視頻/靜態(tài)圖像格式,包括:MPEG4、H.264、AAC、AMR、JPG、PNG、GIF等。從功能上分為兩部分,一是音/視頻的回放(PlayBack),二是音視頻的紀(jì)錄(Record)OpenMAX是
2、Khronos制定的API,Khronos也是OpenGL的制定者。OpenMAX是無授權(quán)費、跨平臺的應(yīng)用程序接口API第2頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.3 音樂播放1.Android理論上支持大部分的音頻格式,比如WAV、AAC、MP3、AMR、MIDI、3GP、OGG等。實際上只有OGG、MP3和WAV格式的音頻可以在模擬器上面正常的播放。 2.音頻播放使用MediaPlayer類來實現(xiàn)第3頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.3MediaPlayer類簡介MediaPlayer可以播放音頻和視頻,另外也可以通過V
3、ideoView來播放視頻1)如何獲得MediaPlayer實例:可以使用直接new的方式:MediaPlayer mp = new MediaPlayer();也可以使用create的方式,如:MediaPlayer mp = MediaPlayer.create(this, R.raw.test);/這時就不用調(diào)用setDataSource了第4頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.3MediaPlayer類簡介2) 如何設(shè)置要播放的文件:MediaPlayer要播放的文件主要包括3個來源:a. 用戶在應(yīng)用中事先自帶的resource資源例如:MediaP
4、layer.create(this, R.raw.test);b. 存儲在SD卡或其他文件路徑下的媒體文件例如:mp.setDataSource(/sdcard/test.mp3);c. 網(wǎng)絡(luò)上的媒體文件例如:mp.setDataSource(/music/confucius.mp3);MediaPlayer的setDataSource一共四個方法:setDataSource (String path) setDataSource (FileDescriptor fd) setDataSource (Context context, Uri uri) setDataSource (FileDe
5、scriptor fd, long offset, long length)第5頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.3MediaPlayer類簡介3)對播放器的主要控制方法:Android通過控制播放器的狀態(tài)的方式來控制媒體文件的播放,其中:prepare()和prepareAsync() 提供了同步和異步兩種方式設(shè)置播放器進入prepare狀態(tài),需要注意的是,如果MediaPlayer實例是由create方法創(chuàng)建的,那么第一次啟動播放前不需要再調(diào)用prepare()了,因為create方法里已經(jīng)調(diào)用過了。 start()是真正啟動文件播放的方法,pause
6、()和stop()比較簡單,起到暫停和停止播放的作用, seekTo()是定位方法,可以讓播放器從指定的位置開始播放 release()可以釋放播放器占用的資源,一旦確定不再使用播放器時應(yīng)當(dāng)盡早調(diào)用它釋放資源。reset()可以使播放器從Error狀態(tài)中恢復(fù)過來,重新會到Idle狀態(tài)。第6頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.3MediaPlayer類簡介4)設(shè)置播放器的監(jiān)聽器:MediaPlayer提供了一些設(shè)置不同監(jiān)聽器的方法來更好地對播放器的工作狀態(tài)進行監(jiān)聽,以期及時處理各種情況,如: setOnCompletionListener(MediaPlaye
7、r.OnCompletionListener listener)、setOnErrorListener(MediaPlayer.OnErrorListener listener)等,設(shè)置播放器時需要考慮到播放器可能出現(xiàn)的情況設(shè)置好監(jiān)聽和處理邏輯,以保持播放器的健壯性。第7頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.3給游戲加上背景音樂創(chuàng)建媒體播放器import android.media.MediaPlayer; public class pingpang extends Activity private static MediaPlayer mp = null;
8、第8頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.1給游戲加上背景音樂添加播放函數(shù)public class pingpang extends Activity public static void play(Context context,int resource)mp = MediaPlayer.create(context,resource); mp.setLooping(true); /指定是否重復(fù)播放mp.start(); /開始播放第9頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.1給游戲加上背景音樂調(diào)用play函數(shù)進行播放publ
9、ic void onCreate(Bundle savedInstanceState) pview = new pView(this); super.onCreate(savedInstanceState);setContentView(pview); pview.requestFocus(); play(this,R.raw.game); 第10頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.3 視頻播放Android SDK對視頻支持的格式如下:MP4(MPEG_4低比特率);H263;H264(AVC)在Windows計算機上,唯一可靠工作的格式是MP4,建議盡量
10、采用這種格式。 第11頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 5.2 視頻播放Android的MediaPlayer類的視頻處理與音頻處理方式一樣,唯一差別是需要為視頻創(chuàng)建一個用于繪制圖形的Surface。可以用start()和stop()方法控制視頻的播放。還有一種更簡單的方法將視頻嵌入到應(yīng)用程序:VideoView類。 第12頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 案例:視頻播放器軟件 第13頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 方法一:VideoViewVideoView view=(VideoView
11、)findViewById(R.id.video_view);view.setVideoPath(/sdcard/sample.3gp);view.startview.pauseview.stop第14頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 方法二:SurfaceView和MediaPlayer實現(xiàn) surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView); /把輸送給surfaceView的視頻畫面,直接顯示到屏幕上 /,不要維持它自身的緩沖區(qū) holder=surfaceView.getHol
12、der(); /Holder四種類型(NORMAL,HARDWARE,GPU,PUSH_BUFFERS)holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);holder.setFixedSize(176, 144);holder.setKeepScreenOn(true);holder.addCallback(new SurfaceCallback();第15頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) mediaPlayer = new MediaPlayer();mediaPlayer.setDisplay(
13、holder);常見方法:mediaPlayer.create(Context context,int resource);mediaPlayer.setDataSource(path/uri);mediaPlayer.start();mediaPlayer.pause();mediaPlayer.stop();meidaPlayer.reset();mediaPlayer.isPlaying();setOnCompletionListener();第16頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 第17頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā)
14、 畫布與組件混合第18頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 第19頁,共33頁。Adroid移動開發(fā)模塊五:Android多媒體開發(fā) 定時刷新第20頁,共33頁。項目案例分析分析:1.文件搜索2.文件列表顯示3.播放控制第21頁,共33頁。搜索指定擴張名文件class MusicFilter implements FilenameFilter public boolean accept(File dir, String name) return (name.endsWith(.mp3);/返回當(dāng)前目錄所有以.mp3結(jié)尾的文件 public MusicService
15、() musicList = new ArrayList(); player = new MediaPlayer(); File home = new File(MUSIC_PATH); if (home .listFiles(new MusicFilter().length 0) for (File file : home .listFiles(new MusicFilter() musicList.add(file.getAbsolutePath(); 第22頁,共33頁。2.文件列表顯示ArrayAdapter musicAdapter = new ArrayAdapter( MainA
16、ctivity.this, R.layout.musicitme, musicList); listView.setAdapter(musicAdapter );第23頁,共33頁。音樂播放void playMusic(String path) try myMediaPlayer.reset();myMediaPlayer.setDataSource(path);myMediaPlayer.prepare();myMediaPlayer.start(); 第24頁,共33頁。/播放完后,自動播放下一首myMediaPlayer.setOnCompletionListener(new OnCom
17、pletionListener() Overridepublic void onCompletion(MediaPlayer mp) / TODO Auto-generated method stubnextMusic();); catch (Exception e) / TODO: handle exceptione.printStackTrace();第25頁,共33頁。/ 下一首void nextMusic() currentListItem+;if (currentListItem = myMusicList.size()currentListItem = 0;playMusic(MU
18、SIC_PATH + myMusicList.get(currentListItem);第26頁,共33頁。/ 上一首void lastMusic() currentListItem-;if (currentListItem = -1)currentListItem = myMusicList.size() - 1;playMusic(MUSIC_PATH + myMusicList.get(currentListItem);第27頁,共33頁。文件搜索 /* * 對象聲明 * items:存放顯示的名稱 * paths:存放文件路徑 * rootPath:起始目錄 */ private Li
19、st items = null; private List paths = null; private String rootPath = /; 第28頁,共33頁。/取得文件架構(gòu)的method private void getFileDir(String filePath) mPath.setText(filePath); /設(shè)置目前所在路徑 items=new ArrayList(); paths = new ArrayList(); File f = new File(filePath); File files = f.listFiles(); if(!filePath.equals(rootPath) /*第一條設(shè)置為回到根目錄*/ items.add(Back to +rootPath); paths.add(rootPath); /*第二條設(shè)置為回上層*/ items.add(Back to .);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西財經(jīng)大學(xué)華商學(xué)院《金融數(shù)據(jù)采集》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼陽職業(yè)技術(shù)學(xué)院《電視欄目專題與制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄭州大學(xué)《產(chǎn)品設(shè)計報告書制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 做賬實操-保險公司理賠支出的賬務(wù)處理分錄
- 2025屆上海市寶山區(qū)高三一??荚嚉v史試卷
- 江西外語外貿(mào)職業(yè)學(xué)院《文獻(xiàn)查閱與交流》2023-2024學(xué)年第二學(xué)期期末試卷
- 柳州職業(yè)技術(shù)學(xué)院《行政倫理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春職業(yè)技術(shù)學(xué)院《商務(wù)談判》2023-2024學(xué)年第二學(xué)期期末試卷
- 首都師范大學(xué)《工程制圖與全專業(yè)三維識圖課程設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 魯迅美術(shù)學(xué)院《生物藥物制劑學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 軟件監(jiān)理報告
- 中國常見食物營養(yǎng)成分表
- 09J202-1 坡屋面建筑構(gòu)造(一)-2
- 光伏電站土建工程施工技術(shù)方案
- 2024年上海英語高考卷及答案完整版
- 物業(yè)公司客戶服務(wù)課件
- 腦卒中患者的康復(fù)護理查房
- 酶工程技術(shù)在茶葉深加工中的應(yīng)用
- 人教版英語八年級下冊全冊教案教學(xué)設(shè)計及教學(xué)反思
- 02J401 鋼梯【含03年修改】圖集
- 烹飪概論教學(xué)大綱
評論
0/150
提交評論