视频捕获忽略了EXTRA_OUTPUT困境

Dav*_*own 5 android video-capture

我有一只猪在我的应用程序中创建一个基本的视频捕获功能.我想调用我的设备的默认视频捕获工具,并将文件保存到特定位置.

从文档中可以通过在EXTRA_OUTPUT中提供Uri来实现,但是发生的事情是完全被忽略并且视频实际上被写入通常的媒体商店位置.

我的代码非常简单:

      Intent i = new Intent( android.provider.MediaStore.ACTION_VIDEO_CAPTURE );
      String SD_CARD_TEMP = Environment.getExternalStorageDirectory() 
        + File.separator + MEDIA_TEMP ;       
      i.putExtra( android.provider.MediaStore.EXTRA_OUTPUT, Uri.parse(SD_CARD_TEMP) );       
      startActivityForResult( i, ACTIVITY_CAPTURE_VIDEO );
Run Code Online (Sandbox Code Playgroud)

常量MEDIA_TEMP设置为"media_temp".我也尝试使用File而不是字符串并使用Uri.fromFile(),但这没有任何区别.

如果有人有任何想法,为什么这个代码没有表现,因为文档说它应该..请告诉我:-)

PS.开发正在HTC Desire HD上进行,而不是模拟器..

谢谢,

戴夫

man*_*rax 6

花了13个小时试图弄清楚这款相机API发生了什么......

我正在使用相机意图和EXTRA_OUTPUT来指定保存文件的位置,并且它被忽略了!

这个应用程序在几个星期前工作,并且在那个时间没有发生操作系统升级.

我可能已经找到了问题的根源:

如果手机上安装了任何与相机API交互或拦截相机API的应用程序,某些API可能会中断!

经过13个小时的调试马拉松,尝试了所有可能的API组合,并遵循stackoverflow上的所有建议,我发现了这一点.

我的手拿着手机累了,所以我用衣架里的电话架把电话固定在桌子上,相机指着一罐花生酱.

幸运的是,当我用我的花生酱照片进行调试时,谷歌护目镜应用程序弹出一个通知,说它已"识别"我图像中的某些内容!

这促使我立即卸载谷歌护目镜,突然之间,图像开始像我们以前一样保存到我的自定义Uri!

这是三星平流层.

  • 为你刚刚带我踏上的旅程+1。我感觉就像坐在你旁边,不停地拍摄一罐花生酱的照片。 (2认同)

Man*_*iac 3

我也有同样的问题。它适用于普通 Android,但不适用于 HTC 或 SonyEricsson 设备。

似乎他们的摄像头应用程序的行为与默认情况不同。

我认为唯一的可能性是向媒体提供商询问最新录制的视频并从中获取路径。然后将该文件复制到您自己的目录并从媒体提供程序中将其删除。

不是很聪明并且容易出错,但也许是唯一的方法。

有人有更好的主意吗?