项目中用的评论回复功能,录制语言时为pcm格式,然后转换为MP3格式:
package zhiji.dajing.com.util;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.Handler;
import android.util.Log;
import com.jiangdg.lametomp3.LameMp3;
import com.jiangdg.lametomp3.Mp3Recorder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.ShortBuffer;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class AudioRecoderUtils {
//文件路径
private String filePath;
//文件夹路径
private String FolderPath;
AudioRecord audioRecord;
private final String TAG = "AudioRecoderUtils";
public static final int MAX_LENGTH = 1000 * 1000 * 1000 ;// 最大录音时长
private OnAudioStatusUpdateListener audioStatusUpdateListener;
private String voicePath = Environment.getExternalStorageDirectory()+"/dajing/audio/pcm/";
private String voiceName = TimeUtils.getCurrentTime() + ".pcm";
private boolean isRecording = false;
int nMinBufSize =AudioRecord.getMinBufferSize(16000,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT);
private double volume;
private ExecutorService mThreadExecutor;
private Handler handler;
static AudioRecoderUtils audioRecoderUtils_p ;
public boolean isTmpConversition;
/**
* 文件存储默认sdcard/record
*/
public AudioRecoderUtils(){
//默认保存路径为/sdcard/record/下
this(Environment.getExternalStorageDirectory()+"/dajing/audio/pcm/");
mThreadExecutor = Executors.newScheduledThreadPool(3);
}
public AudioRecoderUtils(String filePath) {
File path = new File(filePath);
if(!path.exists())
path.mkdirs();
this.FolderPath = filePath;
handler = new Handler();
}
public static AudioRecoderUtils getInstance(){
if (audioRecoderUtils_p == null){
audioRecoderUtils_p = new AudioRecoderUtils();
}
return audioRecoderUtils_p;
}
private long startTime;
private long endTime;
public void startRecord(){
audioRecord = new AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION, 16000,
AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, nMinBufSize);
final File file = new File(voicePath);
voiceName = TimeUtils.getCurrentTime() + ".pcm";
final File fileaudio = new File(voicePath + voiceName);
filePath = voicePath + voiceName;
if (fileaudio.exists()) {

本文介绍了一个Android应用程序中使用的录音功能,该功能可以将原始的PCM格式录音文件转换为MP3格式,包括录音、数据处理和格式转换的具体实现细节。
最低0.47元/天 解锁文章
1083





