【发布时间】:2013-12-17 12:04:53
【问题描述】:
我正在尝试使用我 PC 的内置网络摄像头在我的 Android 应用程序中拍照。我正在使用 eclipse Android 模拟器并将 AVD 设置为使用 webcam0 作为后置摄像头,但是当我运行我的程序时它总是崩溃,说“不幸的是,摄像头已停止”。我在 Manifest xml 中添加了以下行:
<uses-permission android:name="android.permission.CAMERA"/>
虽然它似乎仍然不起作用。我在一些地方读到应该在 AVD 管理器编辑/创建屏幕中有一个“硬件”部分,但我的没有。
我错过了什么吗?这是我尝试运行应用程序时出现的 logcat:
对可能发生的事情有什么想法吗?我到处寻找解决方案,似乎找不到任何解决这个确切问题的方法。感谢您的帮助。
编辑 这是我的图像捕获按钮/方法代码:
/* Create capture button */
Button capture = (Button) findViewById(R.id.btnCapture);
capture.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//create directory/picture file
count++;
file = dir + count + ".jpg";
File picFile = new File(file);
try {
picFile.createNewFile();
} catch (IOException e) {}
Uri outputFileUri = Uri.fromFile(picFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
}
});
/* Check if valid photo */
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
Log.d("CameraDemo", "Pic saved");
}
}
这段代码主要是基于我在 SO 上找到的一个线程创建的,但恐怕我不记得是哪一个了。
【问题讨论】:
-
看看这里。类似错误:stackoverflow.com/questions/7942378/…
-
你试过在手机上运行你的代码吗?它崩溃了吗?另外,请发布您的代码,那里可能存在错误...
-
@Melquiades 我还没有在实际手机上运行它。它仍处于开发阶段,在将其加载到我的 Android 设备之前,我需要整理一些松散的东西。我已经添加了用于相机的代码。 user2511882,您链接的线程似乎以非常不同的方式使用相机。我不确定它是否根本无法按照我的方式完成,或者是否有办法在不添加新类的情况下让我的工作。
-
“虽然它似乎仍然不起作用” - 你是什么意思?是不是一开始就强制关闭?按下按钮?能否请您发布完整的代码,以便我可以检查我的模拟器?
-
我在按下按钮时调用了该方法。该按钮称为“捕获”,当用户单击它时,它应该运行预先编程到设备中的相机捕获过程。我真的无法发布所有代码,它非常广泛并且包含许多不相关的个人数据。但是,如果您创建一个按钮来调用我上面显示的由 onClickListener 调用的方法,您应该能够毫无问题地模拟它。
标签: java android eclipse camera emulation