我正在建立一个相机应用程序,其中视频被不断捕获并保存到SD卡.视频短(几分钟),并且其长度用setMaxDuration()预设.
整个过程工作正常,而主要活动是在前台.但是,当我去另一个活动(例如设置)时,视频录制仅在最长持续时间才能在后台工作.该文件已保存,但无法启动新的序列
因为prepare()失败,显然是因为setPreviewDisplay()不喜欢没有正确的表面来附加.
我试图使用一个虚拟Surface,一个虚拟SurfaceHolder,lockCanvas()和各种其他的技巧,但没有任何作用.有没有办法初始化MediaRecorder没有有效的表面?
解决方法
不幸的是,为了录制视频(
Android SDK 1.6到2.2),您仍然需要预览到有效的表面.有一个增强请求被记录删除这个限制
http://code.google.com/p/android/issues/detail?id=9570