私はAudioRecordクラスを介してマイク入力を使用するAndroidアプリを実装しています。私はAudioRecordインスタンスでrelease()メソッドを呼び出しておらず、アプリケーションを閉じていません。今では別のAudioRecordを初期化することができず、録音オーディオは基本的に他のすべてのアプリケーションでもブロックされています。Android AudioRecordには参照がなくなったときに解放する方法がありますか?
AudioHardwareALSA: error:Input stream already opened for voice recording
AudioRecordインスタンスが解放される方法はありますか?私が今までに見つけた唯一の方法は、実行可能な解決策ではない電話機を再起動することです。リリース資源の方法で
内のthatsデザインの一部を再設計する必要があります。アプリケーションが例外に遭遇し、 'release()'を呼び出さずに終了した場合、例外を捕捉して 'release'を呼び出す必要があります。このソリューションは、開発/デバッグ処理中にのみ使用し、最終製品の一部としてリリースしないでください。 それ以外の場合は、電話機をリセットするだけです。 – ChickenFeet
紛失参照は設計の一部ではありませんが、意図しない(クラッシュ、例外、誰かが電話からバッテリーを取り出しているなど)可能性があります。いくつかの開発者。適切なリリースソリューションを実装していない可能性があり、そのためシステム全体でオーディオを録音することをブロックします。それで私はAndroidのAudioRecrodの実装に少し不快感を感じます。 –