• Android(java)学习笔记87:Android音视频MediaRecorder用法


    1. Android语音录制可以通过 MediaRecorder AudioRecorder
      MediaRecorder本来是多媒体录制控件,可以同时录制视频和语音,当不指定视频源时就只录制语音(默认录制语言);AudioRecorder只能录制语音
    二者录制的区别在于,MediaRecorder固定了语音的编码格式,具体平台支持类型可以在http://developer.android.com/guide/appendix/media-formats.html这里查看,

    而且使用时指定输出文件,在录制的同时系统将语音数据写入文件。

      AudioRecorder输出的是pcm,即原始音频数据,使用者需要自己读取这些数据,这样的好处是可以根据需要边录制边对音频数据处理读取的同时也可以保存到文件进行存储
    语音的播放可以使用MediaPlayer和AudioTracker,与上面的对应,MediaPlayer可以播放各种多媒体文件,而AudioTracker只能播放pcm数据,使用者手动将数据连续写入进行播放

    2. MediaRecorder的使用:

     private void startRecording() {  

            mRecorder = new MediaRecorder();  

            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);  //设置音频资源

            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  //设置输出文件格式

            mRecorder.setOutputFile(mFileName);  

            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  //设置音频编码

            try {  

                mRecorder.prepare();  

            } catch (IOException e) {  

                Log.e(LOG_TAG, "prepare() failed");  

            }  

            mRecorder.start();  

    }  

     

    3. AudioRecorder录制语音: 

     1 int suggestBufferSize = AudioRecord.getMinBufferSize(mSampleRate,  
     2                  mChannelConfig, mAudioFormat);               
     3 mAudioRecord = new AudioRecord(AudioSource.MIC, mSampleRate,  
     4                 mChannelConfig, mAudioFormat, suggestBufferSize);  
     5 mAudioRecorder.startRecording();  
     6 
     7 byte[] inByteBuf = new byte[BUF_SIZE]  
     8 while (runFlag) {  
     9       int readSize = mAudioRecord.read(inByteBuf, 0, 
    10               inByteBuf.length);  
    11    } 
    12    
    13 mAudioRecorder.stop();  
    14 mAudioRecord.release(); 
  • 相关阅读:
    ISO9126 软件质量模型
    java 15.String
    java 14. ArrayList常用方法
    java 13. 方法重载构造方法块this用法
    linux ssh连接心跳检查断开连接
    关于递归,我有几句话想说
    pytest 报错 ImportError: cannot import name 'main'
    递归回溯剪枝之斐波那契数列
    appium-doctor诊断信息不完整
    数据驱动,关键字驱动,混合驱动简单模型
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4711971.html
Copyright © 2020-2023  润新知