android AudioRecorder简单心得分享
时间:2021-12-13 08:23:46
1.如何创建一个有效的AudioRecorder实例
Android各种设备的采样频率不同,输入的声道数也不同,如果采用固定的采样频率和声道数,那么得到的AudioRecorder不一定能够正常初始化。
为了正常使用,需要尝试各种不同的参数,得到在此设备上可以用的AudioRecorder实例。代码如下:
private void createAudioRecord() {
for (int sampleRate : new int[]{44100, 8000, 11025, 16000, 22050, 32000,
47250, 48000}) {
for (short audioFormat : new short[]{
AudioFormat.ENCODING_PCM_16BIT,
AudioFormat.ENCODING_PCM_8BIT}) {
for (short channelConfig : new short[]{
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.CHANNEL_IN_STEREO}) {
// Try to initialize
try {
recBufSize = AudioRecord.getMinBufferSize(sampleRate,
channelConfig, audioFormat);
if (recBufSize < 0) {
continue;
}
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
sampleRate, channelConfig, audioFormat,
recBufSize * 2);
if (audioRecord.getState() == AudioRecord.STATE_INITIALIZED) {
return;
}
audioRecord.release();
audioRecord = null;
} catch (Exception e) {
// Do nothing
}
}
}
}
throw new IllegalStateException(
"getInstance() failed : no suitable audio configurations on this device.");
}
2.常见错误
1.有些设备上面,即使你得到了有效的AudioRecorder实例,在audioRecord.startRecording()的时候还会报ERROR_BAD_VALUE错误。
这有可能是你使用了AudioManager而没有释放导致的。
其他错误都可以在网络上找到答案。
标签:android,AudioRecorder
0
投稿
猜你喜欢
Java使用BigDecimal进行高精度计算的示例代码
2023-03-25 10:35:43
IDEA高效使用设置指南
2023-10-30 01:39:37
Java生成和解析XML格式文件和字符串的实例代码
2023-01-25 08:22:44
java高级用法之注解和反射讲义
2023-10-08 14:40:16
Spring Cloud Gateway重试机制的实现
2023-11-06 01:32:59
Java 对HashMap进行排序的三种常见方法
2022-11-04 19:02:10
一文带你彻底理解Java序列化和反序列化
2021-12-23 05:24:12
spring boot validation参数校验实例分析
2023-02-03 02:50:38
SpringCloud消息总线Bus配置中心实现过程解析
2023-02-14 10:05:18
Android控件之CheckBox、RadioButton用法实例分析
2021-06-01 06:31:26
Android 7.0新特性详解
2022-10-10 07:11:56
C# Dockpanel入门基础必看篇
2023-02-24 18:50:42
Java类获取Spring中bean的5种方式
2022-03-11 06:23:39
maven无法依赖spring-cloud-stater-zipkin的解决方案
2023-09-12 01:54:51
java启动线程的3种方式对比分析
2023-12-17 08:38:41
C#中try...catch的使用与常见面试题分享
2022-10-22 16:30:35
C语言入门篇--初识指针和指针变量
2022-05-31 06:10:45
从Python程序中访问Java类的简单示例
2022-02-19 08:53:13
MyBatis-Plus结合Layui实现分页方法
2023-07-10 13:23:09
Activity透明/半透明效果的设置transparent(两种实现方法)
2022-11-22 00:21:27