Android:如何在没有有效表面的情况下初始化MediaRecorder进行视频预览?

Rob*_*ert 10 android video-capture mediarecorder

我正在构建一个相机应用程序,其中视频不断被捕获并保存到SD卡.视频很短(几分钟),其长度是使用setMaxDuration()预设的.

整个过程工作正常,而主要活动在前台.但是,当我转到另一个活动(例如设置)时,视频录制仅在后台工作,直到达到最大持续时间.文件已保存,但无法启动新序列,因为prepare()失败,显然是因为setPreviewDisplay()不喜欢没有适当的表面来附加.

我尝试使用虚拟Surface,虚拟SurfaceHolder,lockCanvas()和其他各种技巧,但没有任何效果.有没有办法在没有有效表面的情况下初始化MediaRecorder?

Nam*_*tha -1

您正在实施 Surface 回调吗?

为什么需要在没有有效表面的情况下初始化 MediaRecorder?

即使您离开主要活动,您是否也应该进行录音?或者在其他活动产生之前记录是否停止?