如果设备是纵向的,MediaStore.ACTION_VIDEO_CAPTURE会崩溃相机应用程序

时间:2015-03-26 13:44:33

标签: java android android-intent camera orientation

我使用标准MediaStore.ACTION_VIDEO_CAPTURE Intent调用(例如开发人员网站上的调用或许多StackOverflow线程)来录制一些视频。我在(真实的)Nexus 7(API 21)上对其进行测试,只要设备的显示处于横向方向,它就能正常工作...... 当(原生)Android相机应用启动时。如果是纵向,反向纵向或反向横向,相机应用程序会在初始化过程中停止("不幸的是,相机已经停止")并且控件返回到我的应用程序。然而,一旦在风景中初始化,相机应用程序很乐意重新定向到肖像。如果我使用MediaStore.ACTION_IMAGE_CAPTURE,它将以纵向或横向开始。

我知道我可以将我的应用程序的方向修复为横向,并且我知道我可以请求相机以横向方式进行录制,但如果用户碰巧正在以纵向方式握住设备,则屏幕会在期间旋转到垂直转换,因为我的应用程序释放控制到相机应用程序。然后相机应用程序接收控制,而方向是纵向的,它不喜欢它并停止。由于方向的更改,问题是 - 即使我始终将所有内容锁定为纵向,相机应用程序也会在其初始化例程中取消部分。

有没有办法避免这种情况发生(同时仍然通过Intent使用相机)?

(PS我从here注意到,关于定制的相机例程:"注意:相机预览不必处于横向模式......"并继续解释如何实现这一点。这是否意味着" Intent"实现了?)

1 个答案:

答案 0 :(得分:1)

  

有没有办法避免这种情况发生(同时仍然通过Intent使用相机)?

没有

更具体地说,有数以千计可能的相机应用程序 - 由用户预先加载或安装 - 可能声称支持ACTION_VIDEO_CAPTURE,并且其中任何一个都可能有这样的错误。没有EXTRA_PLEASE_AVOID_BUGS您可以通过Intent来更改(虽然 真的很酷......)。