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
投稿
猜你喜欢
Android RecyclerView选择多个item的实现代码
2022-06-09 10:56:56
Android通过原生APi获取所在位置的经纬度
2022-11-12 17:56:14
Java链表(Linked List)基本原理与实现方法入门示例
2021-10-12 05:49:14
Java编程基本概念
2023-09-07 07:15:50
深入学习java位运算的基础知识
2021-06-01 07:10:40
简单了解Java方法的定义和使用实现详解
2023-10-30 16:12:46
VS2015为console.readkey添加代码片段的方法
2023-11-15 05:23:41
list集合去除重复对象的实现
2022-10-16 23:02:42
Java中避免NullPointerException的方法总结
2021-08-29 08:09:24
Android ViewPager无限循环滑动并可自动滚动完整实例
2022-09-09 18:26:55
java向文件中追加内容与读写文件内容源码实例代码
2021-11-15 11:45:13
Android设计模式之单例模式详解
2022-03-12 16:51:47
一文带你入门SpringMVC的配置与使用
2021-06-24 12:30:52
腾讯云部署javaWeb项目的实现步骤
2023-11-05 18:03:29
解决Springboot2.1.x配置Activiti7单独数据源问题
2022-07-28 02:24:04
Java字节与字符流永久存储json数据
2022-12-27 21:10:13
C#实现异步GET的方法
2022-08-17 11:52:55
Mybatis-plus实现主键自增和自动注入时间的示例代码
2022-11-05 00:22:51
详解Java8中Optional的常见用法
2022-04-30 14:32:21
Java枚举详解及使用实例(涵盖了所有典型用法)
2023-06-29 23:17:55