gpt4 book ai didi

android - 摩托罗拉 Droid 上的相机预览

转载 作者:太空狗 更新时间:2023-10-29 13:43:52 24 4
gpt4 key购买 nike

我们的应用程序显示相机预览,它似乎在所有手机上都能正常工作,但摩托罗拉 Droid 除外,在我们设置相机参数时出现运行时异常:

    java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:611)
at com.highwaynorth.andrometer.CameraPreviewSurfaceView.surfaceChanged(CameraPreviewSurfaceView.java:57)
at android.view.SurfaceView.updateWindow(SurfaceView.java:460)
at android.view.SurfaceView.dispatchDraw(SurfaceView.java:287)
at android.view.ViewGroup.drawChild(ViewGroup.java:1525)

这是 surfaceChanged() 的代码,主要取自 APIDemos

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// Now that the size is known, set up the camera parameters and begin
// the preview.
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);
parameters.setPictureFormat(PixelFormat.JPEG);
parameters.setPreviewFormat(PixelFormat.YCbCr_422_SP);
parameters.setPreviewFrameRate(1);
mCamera.setParameters(parameters);
mCamera.startPreview();

有谁知道我们设置参数的方式有什么问题会导致 Motorola Droid 出现异常?

最佳答案

我可以告诉您,您的问题出在以下两行之一:

parameters.setPreviewFormat(PixelFormat.YCbCr_422_SP);
parameters.setPreviewFrameRate(1);

我知道这一点,因为该代码的其余部分正是我在书中的一些相机示例中所做的,并且它们已经在 DROID 上进行了测试。

您可能希望在 Camera.Parameters 对象上使用 getSupportedPreviewFormats()getSupportedPreviewFrameRates() 来查看相关设备是否支持您设置的格式和帧速率寻找。请注意,这些方法是 Android 2.0 的新方法,因此它们可以在 DROID/Milestone(可能还有 Nexus One)上使用,但在撰写本文时还不能使用。如果您的目标是较旧的 Android API 版本,则需要使用反射或一些类加载技巧来使这些方法在 Android 2.0 上运行并在较旧版本上被跳过。

关于android - 摩托罗拉 Droid 上的相机预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2036186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com