2010-11-08 64 views
5

我在创建一个基本的视频捕捉功能在我的应用程序中有一头猪。我想调用默认的视频捕捉工具我的设备,并将文件保存到特定的位置。视频捕捉忽略EXTRA_OUTPUT困境

从这个由EXTRA_OUTPUT提供了一个开放的实现文档,但是发生的事情是,这是完全被忽略和视频实际上是被写入到平时的媒体存储位置。

我的代码是非常简单的:

 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); 

常数MEDIA_TEMP设置为 'media_temp'。我也尝试使用文件而不是字符串,并使用Uri.fromFile(),但没有任何区别。

如果任何人有任何想法,为什么这个代码不作为行为的文档说要把它..请告诉我:-)

PS。发展正在对HTC的Desire HD进行实弹,而不是仿真器..

感谢,

戴夫

+0

它与我的HTC欲望HD(操作系统2.2)上的代码一起工作。所以可能是在这个OS版本或其他东西中修复的。我知道这是一个旧的帖子,但只是不想要任何人编码反对HTC欲望高清放弃尝试 – dds 2011-05-02 23:32:52

回答

3

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

好像他们的cam-app的行为与默认设置不同。

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

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

有人有更好的主意吗?

+0

有趣的想法......这可能是一个很好的安全解决方案 – Dave 2011-03-01 11:05:09

+0

这个想法的工作? 如何获取最后录制的视频? – ghostCoder 2012-01-30 15:25:06

1

我做在Nexus One类似的东西和它的作品,但相同的代码无法正常工作在htc咏叹调。所以它可能与在不同设备上实际运行的活动以及它们是否尊重该参数有关。

6

花费13小时试图弄清楚发生了什么事情与此相机API后...

我用相机意图和EXTRA_OUTPUT到指定保存的文件,并且它被忽略!

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

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

如果安装在任何应用与相互作用的手机,或截取相机API,一些API可能会破坏!

我13小时的马拉松式的调试后发现这一点,尝试所有可能的API组合,并按照计算器上所有的建议..

我的手都拿到厌倦了拿着手机,所以我建了一个手机中脱颖而出一件衣架挂在桌子上,镜头指着一罐花生酱。

幸运的是,当我用花生酱的照片调试时,Google Goggles应用程序弹出一条通知,表示它已在我的图像中“识别出” !

这促使我立即卸载谷歌护目镜,并突然,图像开始保存到我的自定义Uri像他们过去!

这是在三星平流层。

+1

+1为您带来的旅程。我感觉就像坐在你旁边拍摄一罐花生酱的无尽照片。 – 2014-03-15 18:16:09