Android 录音AudioRecord

AudioRecord是安卓多媒体框架中用于录制音频的工具。它支持录制原始音频数据,即PCM数据,PCM数据不能被播放器直接播放,需要编码压缩成常见音频格式才能被播放器识别。通常生成PCM文件之后可将PCM文件转成WAV文件一般的播放器便可直接播放了。

接下来处理AudioRecord操作。

1.初始化AudioRecord

先了解几个概念:

audioSource:音频来源
sampleRateInHz:采样率,以赫兹为单位。目前,只有44100Hz是保证在所有设备上都可以使用的速率(最适合人耳的),但是其他速率(例如22050、16000和11025)可能在某些设备上可以使用;如果用于语音识别的话根据不同厂商需要采用不同的采样率
channelConfig:音频通道的配置
audioFormat:音频数据的格式
bufferSizeInBytes:在录制期间写入音频数据的缓冲区的总大小(以字节为单位)

初始化操作:

int mBufferSize = AudioRecord.getMinBufferSize(16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT)*2;
AudioRecord mAudioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
        16000,
        AudioFormat.CHANNEL_IN_MONO,//双声道
        AudioFormat.ENCODING_PCM_16BIT,
        mBufferSize);

 2.开始录音

 /**
     * 录制pcm文件
     * @param pcmFilePath pcm文件路径
     */
    public void startRecord(String pcmFilePath) {
        if (isRecord) {
            return;
        }
        this.mPcmFilePath=pcmFilePath;
        isRecord = true;
        RecordThread recordThread = new RecordThread();
        mExecutorService.execute(recordThread);
    }

 class RecordThread implements Runnable {

        @Override
        public void run() {
            mAudioRecord.startRecording();
            FileOutputStream fos = null;
            try {
                Log.i(TAG, "文件地址: " + mPcmFilePath);
                f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值