




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關于多媒體開發(fā)第一張,PPT共三十二頁,創(chuàng)作于2022年6月Android平臺多媒體音頻播放音頻錄制視頻播放第二張,PPT共三十二頁,創(chuàng)作于2022年6月音頻文件介紹有兩類主要的音頻文件格式:無損格式,例如WAV,PCM,TTA,F(xiàn)LAC,AU,APE,TAK,WavPack(WV)有損格式,例如MP3,WindowsMediaAudio(WMA),OggVorbis(OGG),AAC第三張,PPT共三十二頁,創(chuàng)作于2022年6月移動音頻文件作為移動設備音頻文件應該原則上比較小,一般的格式:WAV、由于無損壓縮效果最好。MP3、有損壓縮,文件比較小,由于去除的是人類無法感應到的聲音,效果也很好。這是目前常用格式。AAC、壓縮比例更大,比MP3文件還要小。第四張,PPT共三十二頁,創(chuàng)作于2022年6月如何選擇音頻格式?作為移動設備音頻文件原則上應該比較小,但是現(xiàn)在的移動設備處理能力已經(jīng)很快了,sdcard容量的增加儲備大文件也不是一個問題了。播放文件的來源也是選擇文件格式的重要參考依據(jù),如果我們的音頻文件在網(wǎng)上直接播放,那么文件就要小這樣文件傳輸比較快。如果文件來源于本地如sdcard,文件大小就不是問題。第五張,PPT共三十二頁,創(chuàng)作于2022年6月音頻文件介紹有兩類主要的音頻文件格式:無損格式,例如WAV,PCM,TTA,F(xiàn)LAC,AU,APE,TAK,WavPack(WV)有損格式,例如MP3,WindowsMediaAudio(WMA),OggVorbis(OGG),AAC第六張,PPT共三十二頁,創(chuàng)作于2022年6月視頻文件介紹視頻格式可以分為適合本地播放的本地影像視頻和適合在網(wǎng)絡中播放的網(wǎng)絡流媒體影像視頻兩大類。盡管后者在播放的穩(wěn)定性和播放畫面質量上可能沒有前者優(yōu)秀,但網(wǎng)絡流媒體影像視頻的廣泛傳播性使之正被廣泛應用于視頻點播、網(wǎng)絡演示、遠程教育、網(wǎng)絡視頻廣告等等互聯(lián)網(wǎng)信息服務領域。第七張,PPT共三十二頁,創(chuàng)作于2022年6月適合移動設備的視頻文件3GP,3GP是一種3G流媒體的視頻編碼格式,主要是為了配合3G網(wǎng)絡的高傳輸速度而開發(fā)的,也是目前手機中最為常見的一種視頻格式。視頻MP4格式,除了支持MP3所具有的音樂播放功能外,還具備強大的MPEG-4視頻播放能力。第八張,PPT共三十二頁,創(chuàng)作于2022年6月Android開發(fā)音頻應用程序音頻播放音頻錄制第九張,PPT共三十二頁,創(chuàng)作于2022年6月音頻播放Android平臺可以通過資源文件、文件系統(tǒng)和網(wǎng)絡三種方式來播放多媒體文件。無論使用哪一種播放方式,基本的流程都是類似的。第十張,PPT共三十二頁,創(chuàng)作于2022年6月通過資源文件btnStart.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ label.setText("媽媽咪呀!開始播放..."); try{ MediaPlayermp=MediaPlayer.create( MediaPlayerDemo_Audio1.this,R.raw.mamma); mp.start(); }catch(IllegalStateExceptione){ e.printStackTrace(); } }});第十一張,PPT共三十二頁,創(chuàng)作于2022年6月通過資源文件播放raw文件夾,我們需要在res下面創(chuàng)建raw文件夾這個文件存放資源文件,文件命名“a-z0-9_.”,注意不能有大寫字母。MediaPlayer.create方法創(chuàng)建MediaPlayer對象。mp.start()直接播放文件。第十二張,PPT共三十二頁,創(chuàng)作于2022年6月通過文件系統(tǒng)播放btnStart.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ label.setText("媽媽咪呀!開始播放..."); try{ MediaPlayermp=newMediaPlayer(); mp.setDataSource("/sdcard/ma_mma.mp3"); mp.prepare(); mp.start(); }catch(Exceptione){ e.printStackTrace(); } }});第十三張,PPT共三十二頁,創(chuàng)作于2022年6月在模擬器中創(chuàng)建sdcard通過Eclipse的ADT插件創(chuàng)建通過sdk中的命令mksdcard創(chuàng)建D:\>mksdcard1024MD:\workspace\android_sdcard_image第十四張,PPT共三十二頁,創(chuàng)作于2022年6月Eclipse的ADT插件創(chuàng)建第十五張,PPT共三十二頁,創(chuàng)作于2022年6月第十六張,PPT共三十二頁,創(chuàng)作于2022年6月第十七張,PPT共三十二頁,創(chuàng)作于2022年6月視頻播放視頻播放與音頻播放類似都是使用MediaPlayer類實現(xiàn),但是視頻播放需要一個視圖(SurfaceView)展示播放畫面。SurfaceView提供直接訪問一個可畫圖的界面,可以控制在界面頂部的子視圖層。SurfaceView是提供給需要直接畫像素而不是使用窗體部件的應用使用的。Android圖形系統(tǒng)中一個重要的概念和線索是surface。View及其子類(如TextView,Button)要畫在surface上。每個surface創(chuàng)建一個Canvas對象(但屬性時常改變),用來管理view在surface上的繪圖操作,如畫點畫線。第十八張,PPT共三十二頁,創(chuàng)作于2022年6月布局管理文件我們在mediaplayer_2.xml定義SurfaceView......<SurfaceViewandroid:id="@+id/surface"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"></SurfaceView>......第十九張,PPT共三十二頁,創(chuàng)作于2022年6月Activity中的SurfaceView......privateSurfaceViewmPreview;privateSurfaceHolderholder;@OverridepublicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.mediaplayer_2); mPreview=(SurfaceView)findViewById(R.id.surface); holder=mPreview.getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);}......第二十張,PPT共三十二頁,創(chuàng)作于2022年6月SurfaceHolderSurfaceHolder接口持有Surface引用,并且定義了方法控制Surface的尺寸和格式。在SurfaceHolder中定義了4種Surface類型,分別是NORMAL、HARDWARE、GPU和PUSH_BUFFERS。在視頻播放與相機預覽中,通常是使用PUSH_BUFFERS,也就是說,Surface本身并沒有維護一個緩沖區(qū),而是等待屏幕的渲染引擎將內容推送到用戶面前。可以通過holder=mPreview.getHolder();獲得這個對象。SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS是為了surface指定PUSH類型的緩沖區(qū)。第二十一張,PPT共三十二頁,創(chuàng)作于2022年6月Listener的使用除了MediaPlayer類,我們還需要注意幾個播放器件Listener的使用,它們提供了播放器的更多的狀態(tài)信息。除了OnVideoSizeChangedListener以外其它的都可以在音頻中使用。publicclassMediaPlayerDemo_VideoextendsActivity implements
OnBufferingUpdateListener,
OnCompletionListener,
OnPreparedListener,
OnVideoSizeChangedListener, SurfaceHolder.Callback{......}第二十二張,PPT共三十二頁,創(chuàng)作于2022年6月OnBufferingUpdateListener
當播放網(wǎng)絡上的媒體文件或者流媒體MediaPlayer.OnBufferingUpdateListener的onBufferingUpdate(MediaPlayermp,intpercent)接口函數(shù)會被回調,通知當前的緩沖進度信息。通過setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListenerlistener)函數(shù)來注冊該Listener。第二十三張,PPT共三十二頁,創(chuàng)作于2022年6月OnCompletionListener當前歌曲播放結束后,MediaPlayer.OnCompletionListener的onCompletion(MediaPlayermp)接口會被回調,通知歌曲結束事件。通過setOnCompletionListener(MediaPlayer.OnCompletionListenerlistener)函數(shù)來注冊該監(jiān)聽器。第二十四張,PPT共三十二頁,創(chuàng)作于2022年6月OnPreparedListener當播放網(wǎng)絡媒體文件或流媒體時,播放器的準備時間較長,播放器準備完畢可以開始播放時,MediaPlayer.OnPreparedListener的onPrepared(MediaPlayermp)接口會被回調,通知該信息。當播放器需要支持播放流媒體或者網(wǎng)絡媒體文件時,建議使用prepareAsync()接口調用來準備播放器,同時通過MediaPlayer.OnPreparedListener來監(jiān)聽prepared信息。這樣可以避免因為網(wǎng)絡等因素造成的MediaPlayer準備時間過長進而導致程序長時間無響應。第二十五張,PPT共三十二頁,創(chuàng)作于2022年6月OnVideoSizeChangedListener當前視頻尺寸第一次獲得以及改變的時候,MediaPlayer.OnVideoSizeChangedListener的onVideoSizeChanged(MediaPlayermp,intwidth,intheight)接口會被回調。通過setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListenerlistener)函數(shù)來注冊該監(jiān)聽器。第二十六張,PPT共三十二頁,創(chuàng)作于2022年6月實例中接口注冊@OverridepublicvoidsurfaceCreated(SurfaceHolderholder){ Stringpath="/sdcard/nobody1.3gp"; try{ mMediaPlayer=newMediaPlayer(); mMediaPlayer.setDataSource(path); mMediaPlayer.setDisplay(holder); mMediaPlayer.prepare(); mMediaPlayer.setOnBufferingUpdateListener(this); mMediaPlayer.setOnCompletionListener(this); mMediaPlayer.setOnPreparedListener(this); mMediaPlayer.setOnVideoSizeChangedListener(this); }catch(Exceptione){ Log.e(TAG,"error:"+e.getMessage(),e); }}第二十七張,PPT共三十二頁,創(chuàng)作于2022年6月實例中其它播放方法@OverridepublicvoidonPrepared(MediaPlayermp){ Log.d(TAG,"onPreparedcalled"); mMediaPlayer.start();}@OverridepublicvoidonVideoSizeChanged(MediaPlayermp, intwidth,intheight){ Log.d(TAG,"onVideoSizeChangedcalled"); mVideoWidth=mp.getVideoWidth(); mVideoHeight=mp.getVideoHeight(); if(mVideoWidth!=0&&mVideoHeight!=0){ holder.setFixedSize(mVideoWidth,mVideoHeight); } mMediaPlayer.start();}第二十八張,PPT共三十二頁,創(chuàng)作于2022年6月實例中接口注冊@OverridepublicvoidsurfaceCreated(SurfaceHolderholder){ Stringpath="/sdcard/nobody1.3gp"; try{ mMediaPlayer=newMediaPla
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 烏魯木齊房產(chǎn)轉讓合同范例
- 中介介紹分紅合同范例
- 供用沙合同范例
- 加裝電梯銷售合同范例
- 代理轉包合同范例
- 親人之間借貸合同范例
- 烏魯木齊店鋪轉讓合同范例
- 交通疏解合同范例
- oem貼牌合同范例
- 人才入住合同范例
- 寧德時代SHL測評答案
- 2025年徐州地鐵集團有限公司招聘筆試參考題庫含答案解析
- 2025年《收納師》職業(yè)技能培訓考試題庫
- 《中國資本市場》課件
- 農(nóng)機檢修培訓課件
- 2025車位租賃合同范本
- VR游戲設計與制作知到智慧樹章節(jié)測試課后答案2024年秋四川長江職業(yè)學院
- 平行線的判定與性質證明題專訓30題(人教版)(人教版) 帶解析
- 心理咨詢倫理守則
- 【MOOC】森林植物識別技術 -珍稀植物識別-南京森林警察學院 中國大學慕課MOOC答案
- 《學習雷鋒好榜樣》課件
評論
0/150
提交評論