Android音頻播放

   Android中的音頻播放主要藉助於MediaPlayer類來實現的,貌似他很神祕,但其實很簡單,咱們一塊兒來看看他的廬山真面目吧。
java

   一:MediaPalyer的生命週期
網絡

   下面的這幅圖,是在網上找的,這裏咱們只針對其中的幾個特殊的方法,進行說明:
ide

   1:當一個MediaPlayer建立或者調用reset()方法以後,他處於空閒IDLE狀態,在調用release以後,纔會處於結束end狀態
oop

   2:任何一個MediaPlayer都必須處於準備狀態,而後纔開始播放。要開始播放必須調用start方法。
this

   3:當MediaPlayer對象正在播放時,能夠進行暫停與中止等操做,pause方法暫停,stop方法中止。處於暫停態的MediaPlayer能夠經過start方法恢復播放,即從暫停的位置處繼續播放;而處於中止態的必須經過prepare使之處於準備狀態後,而後調用start方法開始播放
spa

   二:經常使用方法
3d

   1:構造方法
視頻

   (1)static MediaPlayer create(Context context,Uri uri):經過URI指定的音頻建立一個多媒體播放器
對象

   (2)static MediaPlayer create(Context context,int resId):經過資源ID建立一個多媒體播放器blog

   2:得到屬性

   (1)int getCurrentPosition():獲得當前的播放位置

   (2)int getDuration():得到播放文件的總時長

   (3)int getVideoheight():得到視頻的高度

   (4)int getVideoWidth():得到視頻的寬度

   3:判斷狀態

   (1)boolean isLooping():是否循環播放

   (2)boolean isPlaying():是否正在播放

   4:設置屬性

   (1)void seekTo(int mesc):設置指定的播放位置(以毫秒爲單位)

   (2)void setDateSourece(String path):根據路徑設置多媒體數據的來源

   (3)void setDateSourece(FileDescriptor file):根據FileDescriptor設置多媒體數據的來源

   (4)void setDateSourece(Uri uri):根據URI設置多媒體數據的來源

   5:經常使用事件

   (1)void prepare():準備資源

   (2)void start():開始播放

   (3)void pause():暫停播放

   (4)void stop():中止播放

   三:音頻的播放

   根據音頻的來源,能夠分爲三種,分別爲本地資源(應用程序內部)、內部的URL指向的資源(SDcard中)和外部的URL指向的資源(網絡中)。這裏咱們只說明其中的第一種方式

本地資源

   (1)在res文件夾下建立文件名必須爲raw的文件,來存放音頻等。根據資源建立MediaPlayer

MediaPlayer mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.shijian);

   (2)調用MediaPlayer的start方法播放音樂

mediaPlayer.start();

    (3)結果:單擊start按鈕以後,播放音樂。(這裏沒有作中止操做,因此不要輕易嘗試哦)

   四:簡單的音樂播放器的製做

功能:在頁面上放置三個按鈕,實現單擊start開始播放,單擊pause後暫停播放,在單擊start後從中止的地方開始播放,單擊stop後中止播放。

   ◆具體實現:

   (1)根據本地資源,建立MediaPlayer對象

mediaPlayer = MediaPlayer.create(this, R.raw.shijian);

   (2)爲三個按鈕添加監聽事件

@Override
    public void onClick(View arg0) {  
        switch (arg0.getId()) {
        case R.id.start:
            mediaPlayer.start();//播放音樂
            break;
        case R.id.pause:
                                                             
            mediaPlayer.pause();//暫停播放
            break;
                                                             
        case R.id.stop://中止播放的實現
            mediaPlayer.pause();//先暫停
            mediaPlayer.seekTo(0);//而後設置文件的播放其實位置
            break;
        }
                                                         
    }
    @Override
    protected void onDestroy() {
        mediaPlayer.stop();//實現的是當應用程序退出以後,音樂的所有中止播放
        super.onDestroy();
    }

   ◆結果:真正的實現了Mediaplayer的生命週期中比較重要的幾個時期。能夠自運行試一下。

相關文章
相關標籤/搜索