音声処理の申請をしています。音声録音にはAndroidAudioRecord
クラスを使用しています。AudioRecord
インスタンスはサービスに入れられます。read()
クラスのメソッド を呼び出すために別のスレッドが使用されますAudioRecord
(SOには十分な例があります)。読み取られたサンプルは、さらに処理するためにネイティブコードに転送され、キューに入れられます。ネイティブコードでは、1つのスレッドが処理を実行しています。問題は、このスレッドがプロセッサ時間を取得しないことです。アプリを終了したら、ネイティブリソースをクリーンアップするための関数を呼び出します。しかし、クリーニングのプロセス全体が終了していないことがあります(私は呼び出しを使用してそれを確立しました)。アプリを再度起動すると、ネイティブ処理が開始されます(新しいサンプルの読み取りはまだ開始されていません)。
読み取りスレッドがそれ自体のためだけにプロセッサを使用している可能性はありますか?ネイティブ(プロセッサ)スレッドに高い優先度を設定できますか?または、他の問題である可能性があります。
私も使ってみましAudioRecord.OnRecordPositionUpdateListener
たonPeriodicNotification
が、成功しませんでした。