android 默认相机黑色,android – 相机预览仍然是黑色的

在Android应用程序中,开发者遇到相机预览显示黑屏的问题。代码尝试创建并设置了一个CustomCameraView,但在实际设备上预览并未正常显示。主要涉及到Camera的初始化、SurfaceHolder回调以及预览设置等步骤,但没有抛出错误,可能是相机权限、SurfaceHolder配置或预览尺寸设置不正确导致的。解决方法可能包括检查权限、SurfaceHolder配置以及相机参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在我的

Android应用程序上尝试相机预览.当我试用我的真实设备时,它会给我黑屏.

这是我的代码,它不会抛出任何错误,但屏幕仍然是黑色的.有任何想法吗?

import android.app.Activity;

import android.content.Context;

import android.graphics.PixelFormat;

import android.hardware.Camera;

import android.hardware.Camera.Parameters;

import android.os.Bundle;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.widget.FrameLayout;

public class ARrazerNav extends Activity{

public void onCreate(Bundle savedInstanceState){

try{

super.onCreate(savedInstanceState);

CustomCameraView cv = new CustomCameraView(this.getApplicationContext());

FrameLayout r1 = new FrameLayout(this.getApplicationContext());

setContentView(r1);

r1.addView(r1);

}catch (Exception e) {

// TODO: handle exception

}

}

public class CustomCameraView extends SurfaceView{

Camera camera;

SurfaceHolder previewHolder;

public CustomCameraView(Context ctx){

super(ctx);

previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

previewHolder.addCallback(surfaceHolderListener);

}

SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback(){

public void surfaceDestroyed(SurfaceHolder holder) {

// TODO Auto-generated method stub

camera.stopPreview();

camera.release();

}

public void surfaceCreated(SurfaceHolder holder) {

// TODO Auto-generated method stub

camera = Camera.open();

try{

camera.setPreviewDisplay(previewHolder);

}catch (Throwable th) {

// TODO: handle exception

}

}

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

// TODO Auto-generated method stub

Parameters params = camera.getParameters();

params.setPreviewSize(width, height);

params.setPictureFormat(PixelFormat.JPEG);

camera.setParameters(params);

camera.startPreview();

}

};

}

}

有人可以给我一些解释为什么它给我黑屏?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值