【问题标题】:How to capture the photo from camera on Android Emulator?如何在 Android Emulator 上从相机拍摄照片?
【发布时间】:2011-12-14 13:56:02
【问题描述】:

基于this article,,我正在尝试从 Android 模拟器上的相机拍摄照片。我按照他们说的指示做了。但我没有得到积极的结果。

我得到Player 是null,而我正在运行WebcamBroadcaster.java(Java 应用程序)。

以前有人做到这一点吗?如果是,请让我怎么做。

或者

还有其他选项可以在 Android Emulator 上从相机拍摄照片吗?

【问题讨论】:

标签: android android-emulator android-camera


【解决方案1】:

在 Android 模拟器 2.1 中,我的代码正在捕获图像,但在其他版本的 android 中不起作用

要启动摄像头进行捕获,您可以使用以下意图过滤器启动摄像头进行捕获

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, CAMERA_RESULT);

捕获后,您将获得图像为位图,因此您需要获取活动结果

if (resultCode == RESULT_OK && requestCode == CAMERA_RESULT) {
    Bundle extras = data.getExtras();
    if(extras.containsKey("data")) {
        Bitmap bmp = (Bitmap) extras.get("data");
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] image = baos.toByteArray();
        if(image != null) {
            //User this byte array in your application
        }
    }else {
        Toast.makeText(getBaseContext(), "Fail to capture Image", Toast.LENGTH_LONG).show();
    }
}

编辑:

现在几乎在所有模拟器中,这段代码都可以工作。

【讨论】:

  • 谢谢。我使用的是安卓 2.3.3 版本。还有其他选择吗?
  • 在模拟器中存在一个问题,只有相机适用于 Android-2.1,但在所有设备中,只要有相机硬件,它就可以正常工作,因此出于测试目的,您可以将模拟器与 Android 2.1 一起使用跨度>
【解决方案2】:

正如他在他的文章中提到的那样,他匆忙编写了这段代码,因此它可能有点错误。并不是说它在任何地方都有效。

我假设你正是使用这段代码来运行这个东西:

CameraSource cs = new SocketCamera("192.168.0.100", 9889, 320, 240, true);
if (!cs.open()) { /* deal with failure to obtain camera */ }
while(/*some condition*/) {
  cs.capture(canvas) //capture the frame onto the canvas
}
cs.close();

顺便说一句,做这些事情的主要目的是什么? 所有相机对齐的东西都应该在真实设备上进行详尽的测试,因为它可能会导致在模拟器上不会发生的大量问题。相机的相机实现仅用于调试/测试目的!

我强烈建议不要花太多时间来运行它,它不会让你走得太远。不过,它还没有在真实设备上进行过测试,这将是最重要的。

希望我的回答没有让你太失望:/

【讨论】:

  • 尽管我同意你的回答,但我必须说在某些情况下很难在真实设备上进行测试。在我目前的情况下,我在工作时在我自己的个人安卓手机上进行测试,并且没有提供真实设备,同时我没有权限在我的个人手机上连接到工作服务器。我的应用程序实现了 zxing OR 代码 - 是的,我可以测试这是否适用于设备 - 以查看它是否正确读取它,但我无法将此信息发送到服务器 - 因为我无法连接到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
相关资源
最近更新 更多