我正在开发一个相机应用程序,视频会不断地被拍摄并保存到SD卡中。这些视频很短(几分钟),并且它们的长度是通过setMaxDuration()预设的。
当主活动在前台时,整个过程都很顺利。但是,当我进入另一个活动(例如设置)时,录制视频仅在后台工作,直到达到最大持续时间为止。文件已保存,但由于prepare()失败,显然是因为setPreviewDisplay()没有正确的表面可附加而无法启动新的序列。
我尝试使用虚拟表面、虚拟SurfaceHolder、lockCanvas()和其他各种技巧,但都没有成功。是否有一种方法可以在没有有效表面的情况下初始化MediaRecorder?
当主活动在前台时,整个过程都很顺利。但是,当我进入另一个活动(例如设置)时,录制视频仅在后台工作,直到达到最大持续时间为止。文件已保存,但由于prepare()失败,显然是因为setPreviewDisplay()没有正确的表面可附加而无法启动新的序列。
我尝试使用虚拟表面、虚拟SurfaceHolder、lockCanvas()和其他各种技巧,但都没有成功。是否有一种方法可以在没有有效表面的情况下初始化MediaRecorder?