Android中调用摄像头预览

 

Android中调用摄像头预览的步骤如下:

1.SurfaceView相关

    //定义对象
    private SurfaceView photoView;     // SurfaceView对象:(视图组件)视频显示
    private SurfaceHolder photoHolder; // SurfaceHolder对象:(抽象接口)SurfaceView支持类 
    private Camera camera;         // Camera对象,相机预览
//SurfaceView对象的设置
        photoHolder=photoView.getHolder(); // 绑定SurfaceView,取得SurfaceHolder对象
        photoHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  //设置显示器类型
        photoHolder.setFixedSize(100, 100);
        photoHolder.addCallback(callback); // SurfaceHolder加入回调接口

2. 实现SurfaceHolder.Callback接口的实现

    SurfaceHolder.Callback callback=new SurfaceHolder.Callback() {
        
        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            camera.setPreviewCallback(null);
            camera.stopPreview();
            camera.release();
            camera=null;
        }
        
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            camera=Camera.open();
            try {
                camera.setPreviewDisplay(photoHolder);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width,
                int height) {
            // TODO Auto-generated method stub
            initCamera();
        }
    };

3.Camera属性的设置

    //摄像头属性的设置
    public void initCamera(){
        Camera.Parameters parameters=camera.getParameters();   //得到摄像头属性
        camera.setDisplayOrientation(90);   //旋转90度(不设置时,会横向显示)
        camera.setParameters(parameters);  //将属性值保存至Camera的参数中    }

 

转载于:https://www.cnblogs.com/haitunzhulang/archive/2013/04/09/3010275.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android系统通过USB OTG(On-The-Go)标准支持USB摄像头。USB摄像头将其视频流捕获,通过USB连接发送到Android设备。为了预览USB摄像头,我们需要使用Android的Camera2 API。 首先,我们需要获取USB摄像头的权限,即声明USB设备权限和请求USB权限。例如,我们可以在AndroidManifest.xml文件添加以下权限声明: ``` <uses-feature android:name="android.hardware.usb.host" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-feature android:name="android.hardware.camera2.full" /> <uses-feature android:name="android.hardware.usb.camera" /> ``` 然后,我们可以使用UsbManager类来检测和访问USB设备。我们需要获取USB摄像头的Vendor ID和Product ID,并通过UsbDeviceConnection类来打开设备并与之通信。 接下来,我们需要创建一个用于预览的SurfaceView。我们可以使用CameraManager类来检测可用的摄像头和摄像头特性。我们可以选择前置或后置摄像头,并在预览之前配置摄像头参数,例如设置分辨率和帧率。 最后,我们可以使用CameraCaptureSession和CaptureRequest类来启动预览,并使用SurfaceView显示在屏幕上。我们还可以通过CaptureCallback类来监听预览的事件,并进行捕获、存储和编辑。 总体来说,通过上述步骤,我们可以轻松调用USB摄像头预览并增强Android应用程序的功能。 ### 回答2: Android系统作为全球智能手机市场的主流系统之一,已经在很多领域展现出了其强大的应用和开发能力。在使用Android开发USB摄像头预览功能时,需要进行以下步骤: 1. 获取USB设备列表:在Android设备上通过USB调用USB设备的列表,以便查询并选择需连接的设备。一般情况下使用USB接口,可调用系统API—UsbManager类,具有getDeviceList()和openDevice()等方法。 2. 请求USB访问权限:获得USB设备列表后,需要获取USB访问权限,以便Android设备可以与USB设备之间进行数据通信。可调用UsbManager类的requestPermission()请求权限。 3. 配置USB摄像头:查找和连接USB设备后,需要进行USB摄像头的配置调整。这些配置参数包括Handler、格式、分辨率、图像尺寸、帧速率等。Android平台提供了MediaRecorder工具类,可用于捕捉视频和音频数据流。 4. 预览和录像:通过USB摄像头获取到的数据需要进行相应的处理,比如进行数据压缩、数据传输、图像处理和帧率控制等操作。此时可利用Android的SurfaceView等控件进行预览和录像。 总结来说,USB摄像头预览功能需要进行一系列的调用和配置,涉及到USB设备的列表、权限申请、配置参数的设置、数据预览和录像等方面。因此,Android开发需要掌握这些操作和API,才能更好地实现该功能。 ### 回答3: 在Android调用USB摄像头进行预览的过程,需要进行如下的步骤: 1、检查设备是否支持USB摄像头调用功能 不是所有的Android设备都支持USB摄像头调用功能,因此首先要检查设备是否支持该功能。可以通过在AndroidManifest.xml文件添加特殊权限“android.permission.USB_CAMERA”来检查设备是否支持。 2、连接USB摄像头并获取设备ID 将USB摄像头插入Android设备,检测到USB摄像头后可以通过USBManager来获取设备ID。需要注意的是,设备ID通常是在设备列表按顺序排列的,因此需要确保获取正确的设备ID。 3、设置摄像头参数 在使用USB摄像头进行预览前,需要设置摄像头的一些参数,如预览分辨率、帧率等。可以通过CameraManager和CameraCharacteristics类进行设置。 4、创建预览窗口 在Android预览可以通过SurfaceView或TextureView来进行。需要创建一个预览窗口并将其与摄像头进行连接。 5、开启预览并显示画面 通过CameraDevice和CameraCaptureSession类,可以开启预览并显示画面。需要注意的是,在预览过程还需要设置响应函数来处理图像帧的回调。 总之,在Android调用USB摄像头进行预览需要完成以上几个步骤,每一步都要仔细处理,使得设备能够正常地进行预览操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值