• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發Android → 使用MediaRecorder編寫Android 錄音程序

    使用MediaRecorder編寫Android 錄音程序

    相關軟件相關文章發表評論 來源:mythou時間:2013/8/6 22:00:27字體大?。?em class="fontsize">A-A+

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

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

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

    今天主要講解一下使用MediaRecorder 實現錄音,主要是參照Android官網介紹來說明。

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

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

    1、使用Mediarecorder 錄音

    MediaRecorder類用來進行媒體采樣,包括音頻和視頻。也就是用來記錄音頻和視頻方法的類,記錄的數據一般都是寫入到文件里面。因此我們可以通過這個類實現錄音和錄視頻的功能。下面介紹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錄音的簡單流程代碼,基本上你使用的代碼,就能實現錄音的功能。

    2、MediaRecorder 相關的類

    //Edited by mythou

    //http://www.cnblogs.com/mythou/
    //定義音頻編碼
    class MediaRecorder.AudioEncoder
    
    //定義聲音資源
    class MediaRecorder.AudioSource
    
    //回調接口,當錄音出現錯誤的時候調用
    interface  MediaRecorder.OnErrorListener
    
    //回調接口,當錄音出現錯誤的時候調用
    interface MediaRecorder.OnInfoListener
    
    //定義輸出格式
    class MediaRecorder.OutputFormat
     
    //定義視頻編碼
    class MediaRecorder.VideoEncoder
    
    //定義視頻source
    class MediaRecorder.VideoSource

    3、MediaRecorder常用方法

    //獲取音頻信號源的最高值。
    final static int getAudioSourceMax()
    
     //最后調用這個方法采樣的時候返回最大振幅的絕對值
    int getMaxAmplitude()
    
    //準備recorder 開始捕獲和編碼數據
    void prepare()
    
    //發布與此MediaRecorder對象關聯的資源
    void release()
    
    //重新啟動mediarecorder到空閑狀態
    void reset()
    
    //設置錄制的音頻通道數。
    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)
    
    //設置記錄會話的最大持續時間(毫秒)
    void setMaxDuration(int max_duration_ms)
    
    //設置記錄會話的最大大?。ㄒ宰止潪閱挝唬?
    void setMaxFileSize(long max_filesize_bytes)
    
    //注冊一個回調被調用發生錯誤時,同時錄制
    void setOnErrorListener(MediaRecorder.OnErrorListener l)
    
    //注冊要同時記錄一個信息事件發生時調用的回調。
    void setOnInfoListener(MediaRecorder.OnInfoListener listener)
     
    //設置輸出的視頻播放的方向提示
    void setOrientationHint(int degrees)
    
    //傳遞要寫入的文件的文件描述符
    void setOutputFile(FileDescriptor fd)
    
    //設置輸出文件的路徑
    void setOutputFile(String path)
    
    //設置在錄制過程中產生的輸出文件的格式
    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)
    
    //開始捕捉和編碼數據到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;

    上面是一段簡單播放錄音的過程,結合上面錄音代碼,就可以實現錄音和回放。

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

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

      相關評論

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

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

      熱門評論

      最新評論

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

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>