VideoModule.java 5.19 KB
package com.sw.laryngoscope.camera;

import com.sw.laryngoscope.activity.fragment.HomeFragment;
import com.sw.laryngoscope.common.InitParam;
import com.sw.laryngoscope.utils.Logger;

public class VideoModule {

    private HomeFragment fragment;

    private VideoUI mUI;

    private VideoManager mVideoManager;

    private VideoCBModule mVideoCBModule;
    private VideoCFModule mVideoCFModule;

    private int mCameraType = InitParam.CAM_BACK;


    public VideoModule() {

    }

    public void init(HomeFragment fragment) {
        this.fragment = fragment;
        mUI = new VideoUI(fragment, fragment.getRootView());

        mVideoManager = new VideoManager(fragment.getActivity().getApplicationContext());
        mVideoManager.startThread(fragment.getActivity().getApplicationContext());

        mVideoCBModule = new VideoCBModule();
        mVideoCBModule.init(fragment, mUI, mVideoManager);
        mVideoCBModule.setmOnMediaListener(fragment);

        mVideoCFModule = new VideoCFModule();
        mVideoCFModule.init(fragment, mUI, mVideoManager);
        mVideoCFModule.setmOnMediaListener(fragment);
    }

    public void startBackPreview() {
        mVideoCBModule.startPreview();
    }

    public void startFrontPreview() {
        mVideoCFModule.startPreview();
    }

    public synchronized void startBackVideoRec() {
        mVideoCBModule.startVideoRecording();
    }

    public synchronized void startFrontVideoRec() {
        mVideoCFModule.startVideoRecording();
    }

    public synchronized void stopBackVideoRec() {
        Logger.d("========HomeFragment===1=========" + mVideoCBModule);
        mVideoCBModule.stopVideoRecording();
    }

    public synchronized void stopFrontVideoRec() {
        Logger.d("========HomeFragment===2=========" + mVideoCFModule);
        mVideoCFModule.stopVideoRecording();
    }

    public synchronized boolean stopBackVideoRecDelay() {
        Logger.d("========HomeFragment===1=========" + mVideoCBModule);
        return mVideoCBModule.stopVideoRecordingDelay();
    }

    public synchronized boolean stopFrontVideoRecDelay() {
        Logger.d("========HomeFragment===2=========" + mVideoCFModule);
        return mVideoCFModule.stopVideoRecordingDelay();
    }

    public void destoryBackMediaRec() {
        mVideoCBModule.destoryMediaRecoder();
    }

    public void destoryFrontMediaRec() {
        mVideoCFModule.destoryMediaRecoder();
    }

    public void closeCamera() {
        mVideoCBModule.closeCamera();
        mVideoCFModule.closeCamera();
    }

    public void closeBackCamera() {
        mVideoCBModule.closeCamera();
    }

    public synchronized void closeFrontCamera() {
        mVideoCFModule.closeCamera();
    }

    public void closeCheckSpace() {
        if (mVideoManager != null) {
            mVideoManager.stopThread();
        }
    }

    public synchronized boolean isBackRec() {
        return mVideoCBModule.isRecording();
    }

    public synchronized boolean isFrontRec() {
        return mVideoCFModule.isRecording();
    }

    public boolean isOpenBackCamera() {
        return mVideoCBModule.isOpenCamera();
    }

    public boolean isOpenFrontCamera() {
        return mVideoCFModule.isOpenCamera();
    }

    public VideoManager getmVideoManager() {
        return mVideoManager;
    }

    public void takeBackPhoto() {
        if ( isOpenBackCamera() ) {
            mVideoCBModule.burstcapture();
        }
    }

    public void takeFrontPhoto() {
        if ( isOpenFrontCamera() ) {
            mVideoCFModule.burstcapture();
        }
    }

    //主显示的摄像头类型
    public void setMainCameraType(int type) {
        mCameraType = type;
    }

    //主显示的摄像头类型
    public int getMainCameraType() {
        return mCameraType;
    }

    public void setCbWhiteBalance(int i, boolean auto) {
        mVideoCBModule.setWhiteBalance(i, auto);
    }

    public void setCfWhiteBalance(int i, boolean auto) {
        mVideoCFModule.setWhiteBalance(i, auto);
    }

    public int getAwbParam() {
        return mVideoCBModule.getAwbParam();
    }

    public void setZoom(int i) {
        //mVideoCBModule.setZoom(i);
    }

    public int getZoom() {
        return mVideoCBModule.getZoom();
    }

    public void setBackId(int id) {
        BaseModule.FACING_BACK_ID = id;
    }

    public void setFrontId(int id) {
        BaseModule.FACING_FRONT_ID = id;
    }

    public void setBackCamShow(int visibility) {
        mVideoCBModule.setCameraShow(visibility);
    }

    public void setFrontCamShow(int visibility) {
        mVideoCFModule.setCameraShow(visibility);
    }

    public void setDisplayOrientation() {
        mVideoCBModule.setDisplayOrientation();
    }

    public int getSingleCamSize() {
        int ret = 0;
        if ( mVideoCBModule != null ) {
            ret = CameraUtils.getCamSize(mVideoCBModule.previewSizeWidth, mVideoCBModule.previewSizeHeight);
        }
        return ret;
    }

    public void setBackCamZoom() {
        mVideoCBModule.setZoom();
    }

    public void setFrontCamZoom() {
        mVideoCFModule.setZoom();
    }

    /*public void takeIcePhoto(VideoCBModule.OnMediaSavedListener listener) {
        if ( isOpenCamera() ) {
            mVideoCBModule.burstIcecapture(listener);
        }
    }*/

}