AudioRecord.read() called with invalid blocking mode
时间: 2024-04-06 11:34:11 浏览: 10
这个错误通常发生在使用AudioRecord进行录音时,read()方法的blocking mode参数传入了无效的值。blocking mode参数指定了在读取音频数据时是否应该阻塞线程,有两个可选值:阻塞模式和非阻塞模式。如果传入了一个无效的值,就会引发该错误。
解决方法是检查传入read()方法的blocking mode参数是否正确,应该传入AudioRecord类的常量之一:AudioRecord.READ_BLOCKING或AudioRecord.READ_NON_BLOCKING。如果问题仍然存在,可以尝试重新初始化AudioRecord对象或检查录音权限是否正确。
相关问题
java.lang.IllegalArgumentException: Invalid audio buffer size.
引用[1]中的异常是因为输入的参数为null,而引用中的代码是将时间戳转换为日期格式的代码。下面是关于java.lang.IllegalArgumentException: Invalid audio buffer size异常的回答:
这个异常通常是由于音频缓冲区大小设置不正确导致的。在Java中,音频缓冲区大小是通过AudioFormat对象的frameSize和frameRate属性计算得出的。如果缓冲区大小设置不正确,则会抛出Invalid audio buffer size异常。
以下是一个设置音频缓冲区大小的例子:
```java
AudioFormat format = new AudioFormat(44100, 16, 2, true, false);
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
line.open(format, 4096); // 设置缓冲区大小为4096
```
Segmentation fault with invalid memory reference.
Segmentation fault with invalid memory reference是一个错误信息,表明程序在访问无效的内存引用时发生了段错误。这个错误通常是由于程序试图访问一个未初始化或已释放的内存地址导致的。
解决这个问题的方法有以下几种:
1. 检查代码中是否存在未初始化或已释放的指针,确保在使用指针之前对其进行初始化,并在使用完成后释放内存。
2. 使用调试工具,如GDB来跟踪程序的执行,找到引发错误的具体代码行,并进行调试分析。
3. 检查程序是否超出了数组的边界,例如访问了数组中不存在的元素。
4. 检查程序中是否存在内存泄漏的情况,即未释放已分配的内存。
5. 确保所使用的库、依赖项和环境都是最新的,并且与程序兼容。
综上所述,Segmentation fault with invalid memory reference是由程序试图访问无效内存引用导致的错误。为了解决这个问题,需要检查代码中的指针使用情况、数组边界、内存泄漏等,并使用调试工具进行分析和调试。同时,确保所使用的库和环境是最新的和兼容的。 <span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [解决 ./wrf运行报错 Program received signal SIGSEGV: Segmentation fault - invalid memory reference](https://blog.csdn.net/chen_xuwu/article/details/116375948)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [关于GAMIT10.7批处理报错Segmentation fault - invalid memory refrence的解决办法](https://blog.csdn.net/qwqwqwnh/article/details/116596537)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [Microsoft Library MSDN4DOS.zip](https://download.csdn.net/download/winsenjiansbomber/7273745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]