欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android App調用MediaRecorder實現錄音功能的實例

 更新時間:2016年04月12日 14:29:58   作者:chenzheng_java  
這篇文章主要介紹了Android App調用MediaRecorder實現錄音功能的實例,MediaRecorder非常強大,不僅能夠用來錄制音頻還可以錄制視頻,需要的朋友可以參考下

MediaRecorder

Android的MediaRecorder包含了Audio和video的記錄功能,在Android的界面上,Music和Video兩個應用程序都是調用MediaRecorder實現的。
MediaRecorder在底層是基于OpenCore(PacketVideo)的庫實現的,為了構建一個MediaRecorder程序,上層還包含了進程間通訊等內容,這種進程間通訊的基礎是Android基本庫中的Binder機制。
以開源的Android為例MediaRecorder的代碼主要在以下的目錄中:
JAVA程序的路徑:

packages/apps/Camera/src/com/android/camera/VideoCamera.java

JAVA Framework的路徑:

frameworks/base/media/java/android/media/MediaRecorder.java

JAVA本地調用部分(JNI):

frameworks/base/media/jni/android_media_MediaRecorder.cpp

這部分內容編譯成為目標是libmedia_jni.so。
主要的頭文件在以下的目錄中:

frameworks/base/include/media/

多媒體底層庫在以下的目錄中:

frameworks/base/media/libmedia/ 

這部分的內容被編譯成庫libmedia.so。
多媒體服務部分:

frameworks/base/media/libmediaplayerservice/

MediaRecorder和MeidaPlayer使用相同的服務。
基于OpenCore部分

external/opencore/android/author

這部分內容被編譯成庫libopencoreauthor.so。

基本的錄音功能實現:
好了,了解了大概的路徑,具體的調用MediaRecorder的內容便可以深入各文件中去研究,接下來我們便直接來看例子,這個錄音器的代碼實現的說明都寫在了注釋中,非常簡單:
  

import java.io.IOException; 
 
import android.app.Activity; 
import android.media.MediaRecorder; 
import android.os.Bundle; 
/** 
 * @description 對通過android系統(tǒng)手機進行錄音的一點說明測試 
 * @author chenzheng_java 
 * @since 2011/03/23 
 */ 
public class MediaRecordActivity extends Activity { 
  
 MediaRecorder mediaRecorder ; 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
   
  mediaRecorder = new MediaRecorder(); 
  record(); 
   
 } 
  
 /** 
  * 開始錄制 
  */ 
 private void record(){ 
  /** 
   * mediaRecorder.setAudioSource設置聲音來源。 
   * MediaRecorder.AudioSource這個內部類詳細的介紹了聲音來源。 
   * 該類中有許多音頻來源,不過最主要使用的還是手機上的麥克風,MediaRecorder.AudioSource.MIC 
   */ 
  mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
  /** 
   * mediaRecorder.setOutputFormat代表輸出文件的格式。該語句必須在setAudioSource之后,在prepare之前。 
   * OutputFormat內部類,定義了音頻輸出的格式,主要包含MPEG_4、THREE_GPP、RAW_AMR……等。 
   */ 
  mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
  /** 
   * mediaRecorder.setAddioEncoder()方法可以設置音頻的編碼 
   * AudioEncoder內部類詳細定義了兩種編碼:AudioEncoder.DEFAULT、AudioEncoder.AMR_NB 
   */ 
  mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
  /** 
   * 設置錄音之后,保存音頻文件的位置 
   */ 
  mediaRecorder.setOutputFile("file:///sdcard/myvido/a.3pg"); 
   
  /** 
   * 調用start開始錄音之前,一定要調用prepare方法。 
   */ 
  try { 
   mediaRecorder.prepare(); 
   mediaRecorder.start(); 
  } catch (IllegalStateException e) { 
   e.printStackTrace(); 
  } catch (IOException e) { 
   e.printStackTrace(); 
  } 
   
 } 
  
 /*** 
  * 此外,還有和MediaRecorder有關的幾個參數與方法,我們一起來看一下: 
  * sampleRateInHz :音頻的采樣頻率,每秒鐘能夠采樣的次數,采樣率越高,音質越高。 
  * 給出的實例是44100、22050、11025但不限于這幾個參數。例如要采集低質量的音頻就可以使用4000、8000等低采樣率 
  * 
  * channelConfig :聲道設置:android支持雙聲道立體聲和單聲道。MONO單聲道,STEREO立體聲 
  * 
  * recorder.stop();停止錄音 
  * recorder.reset(); 重置錄音 ,會重置到setAudioSource這一步 
  * recorder.release(); 解除對錄音資源的占用 
  */ 
} 

 

這里,一定要注意一點,那就是如果我們想要錄音的話,那么首先得添加錄音權限到AndroidManiferst.xml中:

<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>

相關文章

  • Android WebView如何判斷是否滾動到底部

    Android WebView如何判斷是否滾動到底部

    大家好,本篇文章主要講的是Android WebView如何判斷是否滾動到底部,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 簡單好用的Adapter---ArrayAdapter詳解

    簡單好用的Adapter---ArrayAdapter詳解

    這篇文章主要介紹了簡單好用的Adapter---ArrayAdapter詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • android實現手機與單片機藍牙模塊通信

    android實現手機與單片機藍牙模塊通信

    這篇文章主要為大家詳細介紹了android實現手機與單片機藍牙模塊通信的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • AndroidStudio 如何使用aar詳解

    AndroidStudio 如何使用aar詳解

    本文主要介紹AndroidStudio 如何使用aar的資料,這里整理了詳細的資料,幫助大家學習理解此部分的知識,有需要的小伙伴可以參考下
    2016-09-09
  • Android 自定義view實現TopBar效果

    Android 自定義view實現TopBar效果

    這篇文章主要為大家詳細介紹了Android 自定義view實現TopBar效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Android實現拼圖小游戲

    Android實現拼圖小游戲

    這篇文章主要為大家詳細介紹了Android實現拼圖小游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Android保持屏幕常亮

    Android保持屏幕常亮

    本篇文章主要介紹了Android保持屏幕常亮,PowerManager.WakeLock的使用。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Android編程使用內容提供者方式(ContentProvider)進行存儲的方法

    Android編程使用內容提供者方式(ContentProvider)進行存儲的方法

    這篇文章主要介紹了Android編程使用內容提供者方式進行存儲的方法,涉及Android內容提供者的創(chuàng)建,配置及針對數據的增刪改查等操作技巧,需要的朋友可以參考下
    2016-01-01
  • Android App更改應用的圖標的實現方法

    Android App更改應用的圖標的實現方法

    這篇文章主要介紹了Android App更改應用的圖標的實現方法的相關資料,主要是通過入口Activity android:icon="@drawable/new_app_icon" 指向新的應用圖標,需要的朋友可以參考下
    2017-08-08
  • Android中使用定時器的三種方法

    Android中使用定時器的三種方法

    這篇文章主要為大家詳細介紹了Android定時器的三種使用方法,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評論