andriod編程中如何獲取一段語音的時長?

在android有關語音的應用中,咱們可能須要錄音的長度,這個長度很好獲取,只要在剛剛開始錄音的時候獲取本地時間,錄音結束的時候獲取本地時間,以後一減就能夠獲得他的時間長度。java

代碼:first = (int)(System.currentTimeMillis()/1000);//當點擊錄音的時候獲取本地時間,除以1000獲得時間單位是秒,不然是毫秒。android

           second = (int)(System.currentTimeMillis()/1000);//錄音結束的時候獲取本地時間
           thrid = second - first;//先後一減獲得錄音音頻的時長
web

固然本文重點固然不是爲了說這個問題,咱們關注的是直接給你一段音頻,你如何獲得他的時長。ide

下面直接貼出源碼; 經過這個方法你能夠得到須要音頻的時長spa

   

          private String gettime(String string)
  {   //使用此方法能夠直接在後臺獲取音頻文件的播放時間,而不會真的播放音頻
 MediaPlayer player = new MediaPlayer();  //首先你先定義一個mediaplayer  
           try {
               player.setDataSource(string);  //String是指音頻文件的路徑
               player.prepare();        //這個是mediaplayer的播放準備 緩衝
             
                    } catch (IllegalArgumentException e)
                         { e.printStackTrace();  } 
                   catch (SecurityException e)
                      {   e.printStackTrace();  } 
                     catch (IllegalStateException e) 
                     {e.printStackTrace();  } catch (IOException e) 
                      {e.printStackTrace();  }
           player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
                     {//監聽準備
               
        @Override
               public void onPrepared(MediaPlayer player) 
                      {
                   int size = player.getDuration();
                   String timelong = size / 1000 + "''";
                  
               }
           });  
        double size =player.getDuration();//獲得音頻的時間
                String  timelong1 = (int) Math.ceil((size / 1000)) + "''";//轉換爲秒 單位爲''
                player.stop();//暫停播放
                player.release();//釋放資源
        return  timelong1;  //返回音頻時間
               
// TODO Auto-generated method stub
}
相關文章
相關標籤/搜索