首页 > 代码库 > RecoderUtils录音工具类
RecoderUtils录音工具类
import android.media.MediaRecorder; import android.os.Environment; import java.io.File; import java.io.IOException; public class RecoderUtils { private final MediaRecorder recorde = new MediaRecorder(); private final String path; private static int SAMPLE_RATE_IN_HZ = 8000; public RecoderUtils(String path) { this.path = sanitizePath(path); } private String sanitizePath(String path) { if (!path.startsWith("/")) { path = "/" + path; } if (!path.contains(".")) { path += ".amr"; } return Environment.getExternalStorageDirectory().getAbsolutePath() + "/myvoice" + path; } /** 开始录音 */ public void start() { if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { return; } File directory = new File(path).getParentFile(); if (!directory.exists() && !directory.mkdirs()) { return; } try { // 设置声音的来源 recorde.setAudioSource(MediaRecorder.AudioSource.MIC); // 设置声音的输出格式 recorde.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); // 设置声音的编码格式 recorde.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 设置音频采样率 recorde.setAudioSamplingRate(SAMPLE_RATE_IN_HZ); // 设置输出文件 recorde.setOutputFile(path); // 准备录音 recorde.prepare(); // 开始录音 recorde.start(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** 停止录音 */ public void stop() { try { // 停止录音 recorde.stop(); // 释放资源 recorde.release(); } catch (Exception e) { e.printStackTrace(); } } public double getAmplitude() { if (recorde != null) { return (recorde.getMaxAmplitude()); } else return 0; } }
RecoderUtils录音工具类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。