次のようなバックグラウンドオーディオ録音コードを設計しています `
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(outputformat);
mediaRecorder.setAudioEncoder(audioencoder);
mediaRecorder.setOutputFile(mRecFile.getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
Thread.sleep(mDuration);
mediaRecorder.stop();
mediaRecorder.reset();
mediaRecorder.release();
このコードはスレッドの run() 内にあり、サービスがメイン アクティビティによって結合されると、スレッドが開始されます。「戻る」キーを押してアクティビティを終了すると(バインドが解除されます)、記録が続行されることがわかりました。しかし、mDuration を非常に大きな num(3600000 (1 時間)) に設定すると、しばらくすると録画が停止し、mediaRecorder.stop();
実行されませんでした。
活動をやめなければ。録音は常に正常に停止していました。私が知りたいのは、バックグラウンド サウンドの録音を長時間行うことができないのはなぜですか?