我是靠谱客的博主 超帅丝袜,最近开发中收集的这篇文章主要介绍Android调用系统摄像头--使用MediaRecorder--1--预览(preview)功能,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
使用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设备不能不设置预览就进行间谍式的拍摄......
最后
以上就是超帅丝袜为你收集整理的Android调用系统摄像头--使用MediaRecorder--1--预览(preview)功能的全部内容,希望文章能够帮你解决Android调用系统摄像头--使用MediaRecorder--1--预览(preview)功能所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复