通过AudioRecord实现自定义音频属性录音,使用AudioTrack进行播放
直接贴代码了
IRecord和IPlay自定义的两个接口。
录音实现:
package com.ione.recorddemo;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Environment;
import android.util.Log;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* Created by user on 2014/11/13.
*/
public class RecordImpl implements IRecord {
private boolean isRecording;
protected static int FREQUENCY = 16000;
private static int CHANNEL = AudioFormat.CHANNEL_IN_MONO;
private static int ENCODING = AudioFormat.ENCODING_PCM_16BIT;
private final String FILEPATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/demo.wav";
private AudioRecord audioRecord;
@Override
public boolean open(int bufferSize) {
audioRecord = new AudioRecord(MediaRecorder.AudioSource.DEFAULT,
FREQUENCY, CHANNEL, ENCODING, bufferSize);
if (audioRecord.getState() == AudioRecord.STATE_INITIALIZED) {
audioRecord.startRecording();
return true;
}
return false;
}
@Override
public void close() {
if (audioRecord != null) {
if (audioRecord.getState() == Au