Android调用系统摄像头--使用MediaRecorder--1--预览(preview)功能

来源:互联网 发布:淘宝 买折扇推荐 编辑:程序博客网 时间:2024/06/13 03:14

使用MediaRecorder就灵活的多,当前Android系统支持的视频/音频编码格式都可以进行定制,灵活组合编码格式。

抛砖引玉,先扯下预览功能

import java.io.IOException;import android.content.Context;import android.hardware.Camera;import android.util.Log;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class CameraPreview extends SurfaceView implements Callback {    private static final String TAG = "TAG-CameraPreview";    private SurfaceHolder mHolder;     private Camera mCamera;     public CameraPreview(Context context, Camera camera) {         super(context);         mCamera = camera;         // 安装一个SurfaceHolder.Callback        mHolder = getHolder();         mHolder.addCallback(this);         // 针对低于3.0的Android        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);     }     public void surfaceCreated(SurfaceHolder holder) {         // 把预览画面的位置通知摄像头        try {             mCamera.setPreviewDisplay(holder);             mCamera.startPreview();         } catch (IOException e) {             Log.d(TAG, "Error setting camera preview: " + e.getMessage());         }     }     public void surfaceDestroyed(SurfaceHolder holder) {         // TODO    }     public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {                 if (mHolder.getSurface() == null){           // 预览surface不存在          return;         }         // 更改时停止预览         try {             mCamera.stopPreview();         } catch (Exception e){         }         // 在此进行缩放、旋转和重新组织格式        // 以新的设置启动预览        try {             mCamera.setPreviewDisplay(mHolder);             mCamera.startPreview();         } catch (Exception e){             Log.d(TAG, "Error starting camera preview: " + e.getMessage());         }     } }

预览功能就是在拍视频或者照片的时候屏幕上的“预览”,我试了好多次,貌似Android设备不能不设置预览就进行间谍式的拍摄......


原创粉丝点击