【问题标题】:Android Camera for Picture and Video适用于图片和视频的 Android 相机
【发布时间】:2011-08-22 15:40:36
【问题描述】:

我想在我的 Android 应用程序中启动相机活动,我知道该怎么做。我想问一下camera Activity什么时候结束,如何判断是不是用户拍摄的图片或者视频?

更新

我有一个对话框询问两件事。

  1. 新照片或视频
  2. 现有照片或视频

如果不是。 1,这意味着相机将被启动,用户可以拍照或录像并返回活动。

如果它是 2,则意味着画廊将开始有图片和视频供用户选择并返回活动。

【问题讨论】:

  • 如何获取用户拍摄的照片请看这个帖子:stackoverflow.com/questions/2314958/…
  • 我们的目标是找出它是图片还是视频,因为相机可以两者兼得。
  • 对不起,我误解了你的问题。恐怕我帮不上忙。从临时演员中你没有得到任何提示?

标签: android camera


【解决方案1】:

你好,Umair, 我已经完成了这种类型的应用程序,我搜索了很多次,但我没有得到任何合适的解决方案,所以我改变了你的菜单,他们现在是 1)拍摄新照片 2)拍摄新视频 3)现有图片/视频

流程会是这样 1)我使用一个全局变量 2)因此,当用户单击菜单一时,我将全局变量值设置为 1 3) 开始活动以获得如下结果

try{
   System.gc();
   String fileName = System.currentTimeMillis()+".jpg";
   String mPathImage = Environment.getExternalStorageDirectory()+ "/" + fileName;
   File file = new File(mPathImage);
   Uri outputFileUri = Uri.fromFile( file );
   Intent mIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
   mIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
   startActivityForResult(mIntent, 1);
   mValue=1;

}catch(异常 e){

}

如果用户单击菜单 2,我将全局变量的值更改为 2 & 启动活动以获得如下结果。

try {
    System.gc();
    Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
    startActivityForResult(intent, 1);
    mValue=2;
}catch(Exception e){}

如果用户点击第三个菜单,我将值设置为 3 并开始活动以获得如下结果。

try{
   System.gc();
   Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
   intent.setType("*/*");
   startActivityForResult(intent,1);
   mValue=3;
}catch(Exception e){}
}

这将显示移动设备中的所有图像和视频

最后,当活动关闭时,使用全局变量检查用户是否想要新的图像或视频或现有的图像/视频。

希望对你有所帮助..

【讨论】:

  • System.gc()?首先,调用“System.gc()”并不能保证实际执行垃圾收集。另外看起来你不明白你在做什么,否则为什么这行代码?
  • @user1991679 -- 是的,你是对的 System.gc() 不能保证垃圾收集实际上正在执行。为什么你专注于那条线。如果该行不存在,其余代码仍然可以工作。虽然不能保证,但用起来也不错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多