在指定MediaStore.EXTRA_OUTPUT路径时,我从默认摄像头捕获视频的代码在除Galaxy S2之外的每个设备上都能正常工作

时间:2013-08-16 18:45:02

标签: android video-capture

我有一些代码可以让我回到存储我的视频文件的路径,它基本上会产生一个如下所示的路径:

/storage/sdcard0/Pictures/MyApp/MyApp20130816_144111_1131938614.mp4

当我尝试在我的S2上捕捉视频时,我拍摄视频并按下停止相机我的相机应用程序不会显示正常的保存屏幕,它只是让自己回到捕获模式的开始并且永远不会调用onActivityResult 。我发现如果我没有将路径传递给MediaStore.EXTRA_OUTPUT,它就能正常运行。 我已经在Note II,GS3,GS4,Nexus上测试了我的代码,他们似乎都能够捕获视频并将其保存到正确的路径而没有任何问题。为什么S2会这样表现?

1 个答案:

答案 0 :(得分:0)

  

关于星系s2的某些东西不喜欢/ storage /也许?

永远不要硬编码路径。 始终使用Environment.getExternalStoragePublicDirectory()等方法来获取在外部存储上存储文件的根位置。不同的设备,甚至同一设备上的不同用户(Android 4.2+平板电脑)将有不同的外部存储路径。

然而,我最初评论中的观点仍然存在。您作为开发人员“使用安装在galaxy设备上的默认相机应用程序”。您作为用户可能正在使用该特定应用。有近十亿的Android设备用户;你不是全部。欢迎他们使用他们想要的任何相机应用程序,包括第三方应用程序。而且,他们将使用数千种Android设备型号。他们都不一定会尊重您拍照的要求。对你来说,尝试更忠实地在更多设备上工作(例如不是硬编码路径)当然是值得的,但你需要记住,每当你要求另一个开发人员的应用程序为你工作时,另一个开发人员是控制所发生的事情,远远超过你。