所以我从这个小小的写作开始。我想尝试制作一个在后台运行时拍照的应用程序。首先,我想要一个曾经打开的应用程序,每隔X秒就会拍一张照片。在重新创建了下面的演练中显示的类和方法后,我遇到了一些问题。
http://itp.nyu.edu/~sve204/mobilemedia_spring10/androidCamera101.pdf
对于初学者来说,似乎onCreate函数为应用程序设置了所有对象,但是如果你尝试通过除onClick之外的任何其他方法(IE直接调用它),应用程序实际上没有设置画布或预览了。
我的第一个问题: 是否有任何条件方法可以设置,等待所有“onCreate”对象创建并调用和关联它们的相关方法?在自动开始拍照之前,我如何等待应用程序完成整理表面并启动相机预览?
我的第二个问题: 我需要预览才能拍照。无论如何还是在拍照时将这个应用程序推到后面(IE在后台运行)?绘制画布是一项要求吗? (据我所知,AFAIK,当你设置另一个暂停当前应用程序的屏幕或应用程序并关闭你正在展示该预览的表面/画布时,你需要有一个Surfaceholder来开始预览。如果我对这一切的理解是正确的,那么我能做的最好就是制作一个1x1像素的画布,由于应用程序位于前台,它仍会占用屏幕。
我的第三个问题:这有什么办法吗?您是否仍可以某种方式使用相机而无需预览?
答案 0 :(得分:0)
您必须实施SurfaceHolder.Callback
并等待surfaceCreated()
被调用。
之后你可以做所有MediaRecorder
准备(setPreviewDisplay,setAudio,setVideo,prepare())。
您可以将SurfaceView与另一个视图叠加,从而隐藏它。