package com.honghe.record;
import java.io.File;
import android.media.MediaRecorder;
import android.os.Environment;
public class AudioFileFunc {
//音频输入-麦克风
public final static int AUDIO_INPUT = MediaRecorder.AudioSource.MIC;
//采用频率
//44100是目前的标准,但是某些设备仍然支持22050,16000,11025
// public final static int AUDIO_SAMPLE_RATE = 44100; //44.1KHz,普遍使用的频率
public final static int AUDIO_SAMPLE_RATE = 8000; //44.1KHz,普遍使用的频率
//录音输出文件
private static String AUDIO_RAW_FILENAME = "RawAudio.raw";
private static String AUDIO_WAV_FILENAME = "FinalAudio.wav";
public static String AUDIO_AMR_FILENAME = "FinalAudio.amr";
/**
* 判断是否有外部存储设备sdcard
* @return true | false
*/
public static boolean isSdcardExit() {
if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
return true;
else
return false;
}
/**
* 获取麦克风输入的原始音频流文件路径
* @return
*/
public static String getRawFilePath() {
String mAudioRawPath = "";
if (isSdcardExit()) {
String fileBasePath = Environment.getExternalStorageDirectory().getAbsolutePath();
mAudioRawPath = fileBasePath + "/" + AUDIO_RAW_FILENAME;
}
return mAudioRawPath;
}
public static void setRawFileName(String fileName) {
AUDIO_RAW_FILENAME = fileName;
}
public static void setWavFileName(String fileName) {
AUDIO_WAV_FILENAME = fileName;
}
public static void setAmrFileName(String fileName) {
AUDIO_AMR_FILENAME = fileName;
}
/**
* 获取编码后的WAV格式音频文件路径
* @return
*/
public static String getWavFilePath() {
String mAudioWavPath = "";
if (isSdcardExit()) {
String fileBasePath = Environment.getExternalStorageDirectory().getAbsolutePath();
mAudioWavPath = fileBasePath + "/" + AUDIO_WAV_FILENAME;
}
return mAudioWavPath;
}
/**
* 根据文件名获取文件的真是路径
* @return
*/
public static String getFilePathByName(String fileName) {
String path = "";
if (isSdcardExit()) {
String fileBasePath = Environment.getExternalStorageDirectory().getAbsolutePath();
path = fileBasePath + "/" + fileName;
}
return path;
}
/**
* 获取编码后的AMR格式音频文件路径
* @return
*/
public static String getAMRFilePath() {
String mAudioAMRPath = "";
if (isSdcardExit()) {
String fileBasePath = Environment.getExternalStorageDirectory().getAbsolutePath();
mAudioAMRPath = fileBasePath + "/" + AUDIO_AMR_FILENAME;
}
return mAudioAMRPath;
}
/**
* 获取文件大小
* @param path,文件的绝对路径
* @return
*/
public static long getFileSize(String path) {
File mFile = new File(path);
if (!mFile.exists())
return -1;
return mFile.length();
}
}