西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)Android → 使用MediaRecorder編寫Android 錄音程序

使用MediaRecorder編寫Android 錄音程序

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:mythou時間:2013/8/6 22:00:27字體大。A-A+

作者:mythou點擊:336次評論:0次標簽: 錄音程序

Total Recorder 錄音程序V6.0 純凈安裝版
  • 類型:音頻處理大。2.0M語言:中文 評分:3.3
  • 標簽:
立即下載

今天工作上需要做一個一邊錄音一邊播放的功能,大致原因是有一個外部設備輸入音頻到我們機器,然后我們機器需要馬上把音頻播放出來。所以了解了一些有關(guān)錄音和播放的知識。接到這個任務的第一反應就是看看Android源碼里面的錄音Demo,因此今天針對Android的錄音demo程序講解一些錄音和播放相關(guān)知識。

今天主要講解一下使用MediaRecorder 實現(xiàn)錄音,主要是參照Android官網(wǎng)介紹來說明。

這個程序并不能實現(xiàn)一邊錄音一邊播放,下一篇文章我再說如何解決這問題。下面是我們今天要講解的Mediarecorder的狀態(tài)機圖。摘錄自Android官網(wǎng)。

PS:新建的QQ群,有興趣可以加入一起討論:Android群:322599434)

1、使用Mediarecorder 錄音

MediaRecorder類用來進行媒體采樣,包括音頻和視頻。也就是用來記錄音頻和視頻方法的類,記錄的數(shù)據(jù)一般都是寫入到文件里面。因此我們可以通過這個類實現(xiàn)錄音和錄視頻的功能。下面介紹MediaRecorder用來錄音的簡單方法:

 MediaRecorder recorder = new MediaRecorder();
 recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
 recorder.setOutputFile(PATH_NAME);
 recorder.prepare();
 recorder.start();   // 開始錄音

 ...
 recorder.stop();
 recorder.reset();   // You can reuse the object by going back to setAudioSource() step
 recorder.release(); // Now the object cannot be reused

上面是使用MediaRecorder錄音的簡單流程代碼,基本上你使用的代碼,就能實現(xiàn)錄音的功能。

2、MediaRecorder 相關(guān)的類

//Edited by mythou

//http://www.cnblogs.com/mythou/
//定義音頻編碼
class MediaRecorder.AudioEncoder

//定義聲音資源
class MediaRecorder.AudioSource

//回調(diào)接口,當錄音出現(xiàn)錯誤的時候調(diào)用
interface  MediaRecorder.OnErrorListener

//回調(diào)接口,當錄音出現(xiàn)錯誤的時候調(diào)用
interface MediaRecorder.OnInfoListener

//定義輸出格式
class MediaRecorder.OutputFormat
 
//定義視頻編碼
class MediaRecorder.VideoEncoder

//定義視頻source
class MediaRecorder.VideoSource

3、MediaRecorder常用方法

//獲取音頻信號源的最高值。
final static int getAudioSourceMax()

 //最后調(diào)用這個方法采樣的時候返回最大振幅的絕對值
int getMaxAmplitude()

//準備recorder 開始捕獲和編碼數(shù)據(jù)
void prepare()

//發(fā)布與此MediaRecorder對象關(guān)聯(lián)的資源
void release()

//重新啟動mediarecorder到空閑狀態(tài)
void reset()

//設置錄制的音頻通道數(shù)。
void setAudioChannels(int numChannels)

//設置audio的編碼格式
void setAudioEncoder(int audio_encoder)

//設置錄制的音頻編碼比特率
void setAudioEncodingBitRate(int bitRate)
 
//設置錄制的音頻采樣率。
void setAudioSamplingRate(int samplingRate)

//設置用于錄制的音源。
void setAudioSource(int audio_source)

//輔助時間的推移視頻文件的路徑傳遞。
void setAuxiliaryOutputFile(String path)

void setAuxiliaryOutputFile(FileDescriptor fd)
//在文件描述符傳遞的輔助時間的推移視頻
 
//設置一個recording的攝像頭
void setCamera(Camera c)

//設置視頻幀的捕獲率
void setCaptureRate(double fps)

//設置記錄會話的最大持續(xù)時間(毫秒)
void setMaxDuration(int max_duration_ms)

//設置記錄會話的最大大。ㄒ宰止(jié)為單位)
void setMaxFileSize(long max_filesize_bytes)

//注冊一個回調(diào)被調(diào)用發(fā)生錯誤時,同時錄制
void setOnErrorListener(MediaRecorder.OnErrorListener l)

//注冊要同時記錄一個信息事件發(fā)生時調(diào)用的回調(diào)。
void setOnInfoListener(MediaRecorder.OnInfoListener listener)
 
//設置輸出的視頻播放的方向提示
void setOrientationHint(int degrees)

//傳遞要寫入的文件的文件描述符
void setOutputFile(FileDescriptor fd)

//設置輸出文件的路徑
void setOutputFile(String path)

//設置在錄制過程中產(chǎn)生的輸出文件的格式
void setOutputFormat(int output_format)

//表面設置顯示記錄媒體(視頻)的預覽
void setPreviewDisplay(Surface sv)

//從一個記錄CamcorderProfile對象的使用設置
void setProfile(CamcorderProfile profile)

//設置視頻編碼器,用于錄制
void setVideoEncoder(int video_encoder)

//設置錄制的視頻編碼比特率
void setVideoEncodingBitRate(int bitRate)
 
//設置要捕獲的視頻幀速率
void setVideoFrameRate(int rate)

//設置要捕獲的視頻的寬度和高度
void setVideoSize(int width, int height)

//開始捕捉和編碼數(shù)據(jù)到setOutputFile(指定的文件)
void setVideoSource(int video_source)

//開始錄音
void start()

//停止recording
void stop()

4、播放錄音

mPlayer = new MediaPlayer();
mPlayer.setDataSource(mSampleFile.getAbsolutePath());
mPlayer.setOnCompletionListener(this);
mPlayer.setOnErrorListener(this);
mPlayer.prepare();
mPlayer.start();

//.......
mPlayer.stop();
mPlayer.release();
mPlayer = null;

上面是一段簡單播放錄音的過程,結(jié)合上面錄音代碼,就可以實現(xiàn)錄音和回放。

MediaRecorder的使用方法很簡單,最后給出Android源碼里面的錄音程序,方便有需要的朋友下載看看。下一篇文章再講解如何實現(xiàn)一邊錄音一邊播放功能。

Android錄音程序下載:http://pan.baidu.com/share/link?shareid=3363643796&uk=85241834

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)