当我不再有参考资料时,有没有办法发布Android AudioRecord?

当我不再有参考资料时,有没有办法发布Android AudioRecord?,android,audiorecord,Android,Audiorecord,我正在实现一个Android应用程序,它通过AudioRecord类使用麦克风输入。我没有在AudioRecord实例上调用release()方法并关闭应用程序。现在我无法初始化另一个音频记录,录制音频基本上也被所有其他应用程序阻止 AudioHardwareALSA: error:Input stream already opened for voice recording 当我不再有对AudioRecord实例的引用时,有没有办法发布它?到目前为止,我找到的唯一方法是重新启动手机,这不是一

我正在实现一个Android应用程序,它通过AudioRecord类使用麦克风输入。我没有在AudioRecord实例上调用release()方法并关闭应用程序。现在我无法初始化另一个音频记录,录制音频基本上也被所有其他应用程序阻止

AudioHardwareALSA: error:Input stream already opened for voice recording

当我不再有对AudioRecord实例的引用时,有没有办法发布它?到目前为止,我找到的唯一方法是重新启动手机,这不是一个可行的解决方案。

使用onDestroy方法释放所有资源

@Override
protected void onDestroy() {
    super.onDestroy();
    // release resources
    releaseResources();
    visualizerView = null;
}

在release resources方法中,我要做的是查看录制是否正在运行,然后停止/取消它,这都在try catch块中

如果丢失参考是设计的一部分,则需要重新设计。如果应用程序遇到异常并在未调用
release()
的情况下关闭,则需要捕获任何可能的异常并调用
release
。此解决方案只能在开发/调试过程中使用,不应作为最终产品的一部分发布。在所有其他情况下,您只需重置手机。失去参考不是设计的一部分,但它可能会意外发生(崩溃、异常、有人从手机中取出电池等)。一些开发者。可能无法实现适当的发布解决方案,因此会阻止整个系统中的音频录制。这让我对Android的AudioRecrod实现感到有点不舒服。若其他应用程序不能正确发布AudioRecord怎么办?你们的意思是你们正在使用intent并显示另一个应用程序来录制音频?或者是在你自己的应用程序中?我想知道一个案例,当其他一些与我无关的应用程序不能正常发布录音时。音频录制在整个系统中被阻塞,除了重新启动手机外,没有其他方法可以克服它。