日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

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

      使用MediaRecorder編寫Android 錄音程序

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

      作者:mythou點(diǎn)擊:336次評論:0次標(biāo)簽: 錄音程序

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

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

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

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

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

      1、使用Mediarecorder 錄音

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

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

      //Edited by mythou

      //http://www.cnblogs.com/mythou/
      //定義音頻編碼
      class MediaRecorder.AudioEncoder
      
      //定義聲音資源
      class MediaRecorder.AudioSource
      
      //回調(diào)接口,當(dāng)錄音出現(xiàn)錯(cuò)誤的時(shí)候調(diào)用
      interface  MediaRecorder.OnErrorListener
      
      //回調(diào)接口,當(dāng)錄音出現(xiàn)錯(cuò)誤的時(shí)候調(diào)用
      interface MediaRecorder.OnInfoListener
      
      //定義輸出格式
      class MediaRecorder.OutputFormat
       
      //定義視頻編碼
      class MediaRecorder.VideoEncoder
      
      //定義視頻source
      class MediaRecorder.VideoSource

      3、MediaRecorder常用方法

      //獲取音頻信號源的最高值。
      final static int getAudioSourceMax()
      
       //最后調(diào)用這個(gè)方法采樣的時(shí)候返回最大振幅的絕對值
      int getMaxAmplitude()
      
      //準(zhǔn)備recorder 開始捕獲和編碼數(shù)據(jù)
      void prepare()
      
      //發(fā)布與此MediaRecorder對象關(guān)聯(lián)的資源
      void release()
      
      //重新啟動(dòng)mediarecorder到空閑狀態(tài)
      void reset()
      
      //設(shè)置錄制的音頻通道數(shù)。
      void setAudioChannels(int numChannels)
      
      //設(shè)置audio的編碼格式
      void setAudioEncoder(int audio_encoder)
      
      //設(shè)置錄制的音頻編碼比特率
      void setAudioEncodingBitRate(int bitRate)
       
      //設(shè)置錄制的音頻采樣率。
      void setAudioSamplingRate(int samplingRate)
      
      //設(shè)置用于錄制的音源。
      void setAudioSource(int audio_source)
      
      //輔助時(shí)間的推移視頻文件的路徑傳遞。
      void setAuxiliaryOutputFile(String path)
      
      void setAuxiliaryOutputFile(FileDescriptor fd)
      //在文件描述符傳遞的輔助時(shí)間的推移視頻
       
      //設(shè)置一個(gè)recording的攝像頭
      void setCamera(Camera c)
      
      //設(shè)置視頻幀的捕獲率
      void setCaptureRate(double fps)
      
      //設(shè)置記錄會(huì)話的最大持續(xù)時(shí)間(毫秒)
      void setMaxDuration(int max_duration_ms)
      
      //設(shè)置記錄會(huì)話的最大大。ㄒ宰止(jié)為單位)
      void setMaxFileSize(long max_filesize_bytes)
      
      //注冊一個(gè)回調(diào)被調(diào)用發(fā)生錯(cuò)誤時(shí),同時(shí)錄制
      void setOnErrorListener(MediaRecorder.OnErrorListener l)
      
      //注冊要同時(shí)記錄一個(gè)信息事件發(fā)生時(shí)調(diào)用的回調(diào)。
      void setOnInfoListener(MediaRecorder.OnInfoListener listener)
       
      //設(shè)置輸出的視頻播放的方向提示
      void setOrientationHint(int degrees)
      
      //傳遞要寫入的文件的文件描述符
      void setOutputFile(FileDescriptor fd)
      
      //設(shè)置輸出文件的路徑
      void setOutputFile(String path)
      
      //設(shè)置在錄制過程中產(chǎn)生的輸出文件的格式
      void setOutputFormat(int output_format)
      
      //表面設(shè)置顯示記錄媒體(視頻)的預(yù)覽
      void setPreviewDisplay(Surface sv)
      
      //從一個(gè)記錄CamcorderProfile對象的使用設(shè)置
      void setProfile(CamcorderProfile profile)
      
      //設(shè)置視頻編碼器,用于錄制
      void setVideoEncoder(int video_encoder)
      
      //設(shè)置錄制的視頻編碼比特率
      void setVideoEncodingBitRate(int bitRate)
       
      //設(shè)置要捕獲的視頻幀速率
      void setVideoFrameRate(int rate)
      
      //設(shè)置要捕獲的視頻的寬度和高度
      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é)合上面錄音代碼,就可以實(shí)現(xiàn)錄音和回放。

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

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

        相關(guān)評論

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

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

        熱門評論

        最新評論

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

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