<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)ndroid的多媒體應用開(kāi)發(fā)與研究

基于A(yíng)ndroid的多媒體應用開(kāi)發(fā)與研究

作者: 時(shí)間:2012-03-05 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/149521.htm

3. 2 Open Core 的主要類(lèi)與接口

Open Core 主要提供了如下幾個(gè)類(lèi):

( 1) MediaPlayer 類(lèi)可以用于播放音頻、視頻和流媒體,它包含了Audio 和Video 的播放功能,在的界面上,音頻和視頻的播放都是調用Media-Player 實(shí)現的。它可以獲得媒體文件和各種屬性和當前的播放狀態(tài),并可以開(kāi)始和停止文件的播放。

( 2) MediaRecorder 類(lèi)用來(lái)進(jìn)行媒體采樣,包括音頻和視頻。MediaRecorder 作為狀態(tài)機運行,需要設置不同的參數,如源格式和源設備。設置后可執行任意長(cháng)度的錄制,直到用戶(hù)停止。

( 3) VideoView 類(lèi)主要用來(lái)顯示一個(gè)視頻文件,它是SurfaceView 類(lèi)的一個(gè)子類(lèi),且實(shí)現了MediaPlayerControl接口。

( 4) Camera 類(lèi)用來(lái)處理系統中與相機相關(guān)的事件,Camera 是一個(gè)專(zhuān)門(mén)用來(lái)連接和斷開(kāi)相機服務(wù)的類(lèi)。

Open Core 在使用過(guò)程中的調用關(guān)系如圖2所示。

圖2 使用Open Core 的調用關(guān)系圖

圖2 使用Open Core 的調用關(guān)系圖

4 示例程序: 播放器

4. 1 布局設計

是通過(guò)布局( Layout) 來(lái)定義UI( 用戶(hù)界面) 的。一般視圖( View) 可以直接在布局的XML 里聲明。XML 文件如下所示:

   ? xml version = ″1. 0″encoding = ″utf-8?″ >

  - AbsoluteLayout

  xmlns: android = ″http: / /schemas. android. com/apk /res /android″

  android: orientation = ″vertical″

  android: layout_width = ″fill_parent″

  android: layout_height = ″fill_parent″ >

   ListView

  android: id = ″@ id /android: list″

  android: layout_width = ″fill_parent″

  android: layout_height = ″fill_parent″

  android: layout_weight = ″1″

  android: drawSelectorOnTop = ″false″ / >

   ImageButton

  android: id = ″@ + id /LastImageButton″

  android: layout_width = ″wrap_content″

  android: layout_height = ″wrap_content″

  android: layout_x = ″10px″

  android: layout_y = ″170px″

  android: src = ″@ drawable /last″ / >

 ?。?以下4 個(gè)BUTTON 同上,橫坐標有變化。)

   /AbsoluteLayout >

這個(gè)簡(jiǎn)單的播放器只有一個(gè)界面,可以顯示播放列表和對音樂(lè )的播放進(jìn)行各種操作。

4. 2 程序框架設計

在這唯一的Activity 類(lèi)的界面生成消息響應方法中,先定義幾個(gè)操作按鈕,然后就要創(chuàng )建整個(gè)程序的主對象---mMediaPlayer 了。語(yǔ)句如下:

  public MediaPlayer mMediaPlayer = null;

這是一個(gè)MediaPlayer 類(lèi)型的對象,它的功能前面已經(jīng)介紹過(guò)了,這里不再贅述。之后要創(chuàng )建的就是其它的組件,包括播放列表、歌曲的路徑以及索引了。

  private List String > mMusicList = new ArrayList String >( ) ; / /播放列表

  private int currentListItme = 0; / /索引

  private static final String MUSIC_PATH = new String( ″ /sdcard/″) ; / /歌曲的路徑

4. 3 程序核心代碼

接下來(lái)設置這些ImageButton 的事件監聽(tīng)。

  mStartImageButton. setOnClickListener(

  new ImageButton. OnClickListener( )

  {

  @ Override public void onClick( View v)

  {

  playMusic( MUSIC_PATH + mMusi-cList. get( currentListItme)

 ?。?;

  }

  } ) ;

這是開(kāi)始播放按鈕的事件監聽(tīng)。這里是調用了一個(gè)playMusic( ) 方法來(lái)實(shí)現音樂(lè )文件的播放的。

在playMusic( ) 方法中,先調用mMediaPlayer 的reset( ) 方法,重置MediaPlayer 到它的正常狀態(tài)。然后調用setDataSource( string) 方法設置好音樂(lè )文件的數據源,再連續調用prepare( ) 和start( ) 方法,MediaPlayer將開(kāi)始播放音樂(lè )文件。

接下來(lái),要設置一個(gè)OnCompletionListener ( setOnCompletionListener( new OnCompletionListener ) ) ,在歌曲結束的時(shí)候,onCompletion( MediaPlayer) 會(huì )被調用,這樣就可以設置為自動(dòng)播放下一曲目。代碼如下。

  mMediaPlayer. setOnCompletionListener(

  new OnCompletionListener( )

  {

  public void onCompletion( MediaPlayer arg0)

  {

  nextMusic( ) ; / /播放下一曲

  }

  } ) ;

其它方法與上面方法類(lèi)似,在停止按鈕的事件響應方法里,要調用mMediaPlayer 的isPlaying( ) 方法來(lái)判斷播放器是否正在播放,如果正在播放則調用reset( ) 方法直接重置播放器即可。暫停則可以調用mMediaPlayer 的pause( ) 方法,再次開(kāi)始播放則調用start( )。

5 結束語(yǔ)

手機應用程序開(kāi)發(fā)需要著(zhù)眼于它的整個(gè)體系構架,這是一項復雜的工程。本文先是介紹并分析了Android 系統的層次架構,并在此基礎上介紹了Android 應用程序開(kāi)發(fā)的相關(guān)技術(shù)和基本的開(kāi)發(fā)流程。接下來(lái)介紹了Android 為開(kāi)發(fā)人員提供的簡(jiǎn)單、易用的開(kāi)發(fā)組件MediaPlayer、MediaRecorder等類(lèi)。最后用具體的應用程序簡(jiǎn)要說(shuō)明了Android多媒體應用程序的開(kāi)發(fā)方法。Android 具有極大的開(kāi)放性和兼容性,相信廣大開(kāi)發(fā)者可以借助AndroidSDK 提供的強大技術(shù)支持,開(kāi)發(fā)出豐富多彩、極具個(gè)性的移動(dòng)應用。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>