我正在构建一个相机应用程序,其中视频不断被捕获并保存到SD卡.视频很短(几分钟),其长度是使用setMaxDuration()预设的.
整个过程工作正常,而主要活动在前台.但是,当我转到另一个活动(例如设置)时,视频录制仅在后台工作,直到达到最大持续时间.文件已保存,但无法启动新序列,因为prepare()失败,显然是因为setPreviewDisplay()不喜欢没有适当的表面来附加.
我尝试使用虚拟Surface,虚拟SurfaceHolder,lockCanvas()和其他各种技巧,但没有任何效果.有没有办法在没有有效表面的情况下初始化MediaRecorder?