ビデオが継続的にキャプチャされ、SD カードに保存されるカメラ アプリを構築しています。ビデオは短く (数分)、その長さは setMaxDuration() で事前に設定されています。
メイン アクティビティがフォアグラウンドにある間、プロセス全体が正常に動作します。しかし、別のアクティビティ (設定など) に移動すると、ビデオ録画はバックグラウンドで最大期間に達するまでしか機能しません。ファイルは保存されますが、prepare() が失敗するため、新しいシーケンスを開始できません。明らかに、setPreviewDisplay() は適切なサーフェスがアタッチされていないことを好まないためです。
ダミーの Surface、ダミーの SurfaceHolder、lockCanvas()、およびその他のさまざまなトリックを使用しようとしましたが、何も機能しません。有効なサーフェスなしで MediaRecorder を初期化する方法はありますか?