如何在TextureView上使用相机预览录制视频

13

我一直在一些Android 4.0设备上使用TextureView。例如,我尝试开发一个简单的应用程序,它可以录制视频并使用TextureView进行预览。然而,就我所读到的Android API文档而言,标准的MediaRecorder需要特定的表面才能执行视频录制,但是另一方面,TextureView不再有自己的表面,因此TextureView和MediaRecorder之间存在不兼容性。

MediaRecorder.setPreviewDisplay

TextureView

是否有人知道如何使用标准的MediaRecorder与TextureView作为其相机预览来录制视频?或者是否有其他方法可以录制视频而不是使用MediaRecorder?

非常感谢您。

1个回答

8
根据这个问题,在Jelly Bean及更高版本中,您只需不调用setPreviewDisplay()MediaRecorder将自动使用Camera使用的预览。我可以确认,不调用setPreviewDisplay()确实有效,至少在Android 4.2上,当Camera预览设置为TextureView时。我还没有尝试在旧版Android上进行此操作以确认4.1是否有效。
这确实留下了一些空白,即Android 3.0-4.0设备可能无法使用TextureView进行预览。

我遇到了相同的问题,我的搭载安卓4.0的HTC One X在使用TextureView作为预览时会冻结屏幕,同时尝试使用MediaRecorder录制视频。 - xiaowoo
这真的救了我的下午。否则我会为此疯狂的。在S3上似乎可以工作,现在要尝试在其他3或4个设备上测试。 - Kevin Galligan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接