package com.wistron.WiCamera;
import java.util.ArrayList;
import java.util.List;
import Utilities.CSStaticData;
import android.graphics.Rect;
import android.graphics.SurfaceTexture;
import android.hardware.Camera;
import android.hardware.Camera.PreviewCallback;
import android.hardware.Camera.Size;
import android.os.Environment;
import android.view.MotionEvent;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
/**
*
* @Copyright (c) 2011 Wistron SWPC All rights reserved.
*
* @created: 2012/02/21
* @filename: InterSurfaceView.java
* @author WH1107063(周海江)
* @purpose 照相或录像的接口,供ddd控件和普通的surfaceview切换使用
*
*
*
*
*/
public interface InterSurfaceView {
public final static int CAMERA_PICLIST_UPDATE = 502;
public final static int CAMERA_VIDEOLIST_UPDATE = 501;
// 单拍
public final static int CAMERA_SINGLE_SHOT = 0;
// 连拍
public final static int CAMERA_CONTINUOUS = 1;
// 局部对焦
public final static int CAMERA_FOCUAREA = 2;
// 录像
public final static int CAMERA_VIDEO = 3;
// 设定时间拍照
public final static int CAMERA_SELFTIME = 4;
// 设定定时连拍
public final static int CAMERA_CONTINUOUSANDSELFTIME = 5;
// 没有对焦
public static final int STATE_IDLE = 0;
// 正在对焦
public static final int STATE_FOCUSING = 1;
// 对焦未完成
public static final int STATE_FOCUSING_SNAP_ON_FINISH = 2;
// 对焦成功
public static final int STATE_SUCCESS = 3;
// 对焦失败
public static final int STATE_FAIL = 4;
// 连拍的声音
public final static String[] CAMERA_SHOT_SOUND = new String[] {
"file:///system/media/audio/ui/camera_click.ogg",
"file:///system/media/audio/ui/Dock.ogg" };
// 场景模式;
public final static String[] CAMERA_SCENEMODE_ARRAY = new String[] {
Camera.Parameters.SCENE_MODE_AUTO,
Camera.Parameters.SCENE_MODE_ACTION,
Camera.Parameters.SCENE_MODE_NIGHT,
Camera.Parameters.SCENE_MODE_THEATRE,
Camera.Parameters.SCENE_MODE_BEACH,
Camera.Parameters.SCENE_MODE_SNOW,
Camera.Parameters.SCENE_MODE_SUNSET,
Camera.Parameters.SCENE_MODE_FIREWORKS
};
// 白平衡模式
public final static String[] CAMERA_WHITEBALANCE_ARRAY = new String[] {
Camera.Parameters.WHITE_BALANCE_AUTO,
Camera.Parameters.WHITE_BALANCE_CLOUDY_DAYLIGHT,
Camera.Parameters.WHITE_BALANCE_INCANDESCENT,
Camera.Parameters.WHITE_BALANCE_DAYLIGHT,
Camera.Parameters.WHITE_BALANCE_FLUORESCENT };
// iso
public final static String[] CAMERA_ISO_ARRAY = new String[] { "auto",
"ISO100", "ISO200", "ISO400", "ISO800", "ISO1600" };
// 曝光类别
public final static int[] CAMERA_EXPOSURE_ALL = { -4, -3, -2, -1, 0, 1, 2,
3, 4 };
// 闪光灯模式
public final static String[] CAMERA_FLASHARRAY = new String[] {
Camera.Parameters.FLASH_MODE_AUTO, Camera.Parameters.FLASH_MODE_ON,
Camera.Parameters.FLASH_MODE_OFF,
};
public abstract void onPause();
public abstract void onResume();
// 闪光灯模式
public final static String[] CAMERA_FOCUSMODE = new String[] {
Camera.Parameters.FOCUS_MODE_AUTO,
Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE,
Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO,
};
public final static String CAMERA_SDCARDPATH = Environment
.getExternalStorageDirectory().getAbsolutePath();
public final static String[] CAMERA_PAHTARRAY = new String[] {
CSStaticData.TMP_INT_DIR,// 内置
CSStaticData.TMP_EXT_DIR // sdcard
};
// 设定照片的大小
public final static int[][] CAMERA_PICSIZE = new int[][] { { 2592, 1944 },
{ 2048, 1536 }, { 1600, 1200 }, { 1024, 768 }, { 640, 480 } };
// 设定自定义时间拍照的时间
public final static int[] CAMERA_SELFTIMERARRAY = new int[] { 0, 3, 5, 10 };
// 设定连拍的张数
public final static int[] CAMERA_CONTINUESHOTNUMARRAY = new int[] { 3, 5, 7 };
// 设定录像的像素
public final static int[][] VIDEO_VIDEORESOLUTIONARRAY = new int[][] {
{ 1920, 1080 }, { 1280, 720 }, { 800, 480 }, { 640, 480 },
{ 352, 288 }, { 320, 240 } };
// 设定自定义时间录像
public final static int[] VIDEO_SELFTIME = new int[] { 0, 3, 5, 10 };
public abstract void camerasFocus(boolean isfocuskeyup);
public abstract void isSingleModes(boolean isSingle);
// 0为一般模式 1为连拍模式
public abstract void setContinueMode(int mode);
public abstract int getPreviewFormat();
public abstract void continueNum(int num);
public abstract void is3D(boolean is3D);
public abstract void initParm();
public abstract void setSize(int previewwidth, int previewheight);
public abstract void continueCapture();
public void isMute(boolean isMute);
public abstract String getVideoPath();
public abstract void setVideoPath(String path);
void cancalAutoFocus();
/**
* 设置照相时的不停对焦模式
*/
public abstract void setFocusMode(int focusmode);
public abstract List<Size> getSupportedPreviewSizes();
void soundPlayerRelease();
public abstract Size getPictureSize();
/**
* 切换摄像头 如果无法切换到相应的摄像头(前置,后置,并重置摄像头
*/
public abstract boolean switchCamera();
public abstract boolean isNeedFocus(Rect[] oldRect, Rect[] newRect);
public abstract void setDisplayOrientation();
public abstract void setOrientationIndicator(int degree);
public abstract void surfaceChanged();
public abstract void surfaceDestroyed();
/**
* 设定焦距值,进行预览的放大和缩小
*
* @param value
*/
public abstract void setZoomSize(int value);
/**
* 设置iso android camera如何设置iso信息
*/
public abstract void setISO();
/**
* 设置照片的大小
*/
public abstract void setPictureSize();
/**
* 如果已经连接到摄像头,则设定预览大小
*/
public abstract void setPreviewSize(int width, int height);
public abstract float getHorizontalViewAngle();
/**
* 如果已经连接到摄像头,则设定预览大小
*/
public abstract void setPreviewSize();
/**
* 开始预览控制
*/
public abstract void startPreview();
/**
* 停止预览
*/
public abstract void stopPreview();
/**
* 设置场景模式
*/
public abstract void setSceneMode();
public abstract void setRotationParm();
public abstract ArrayList<String> getVideoFileList();
public abstract void setVideoFileList(ArrayList<String> lst);
public abstract ArrayList<String> getPicFileList();
public abstract void setPicFileList(ArrayList<String> lst);
/**
* 自定义时间拍照
*/
public abstract void setSelfTime();
/**
* 自定义时间拍照
*/
public abstract void setSelfTimes();
/**
* 设置闪关灯模式
*/
public abstract void setFlashMode(int flashmode);
/**
* 设置白平衡
*/
public abstract void setWhiteBalanceMode();
/**
* 恢复默认
*/
public abstract void restoreDefault();
/**
* 如果已经连接到摄像头,则设定曝光度
*/
public abstract void setExposure();
/**
* 设置拍照声音的类型
*
*/
public abstract void PlaySounds(int a);
/**
* 释放多媒体播放器资源
*/
public abstract void releaseMediaplayer();
public abstract void playSound(int id);
public abstract void setSoundMode(int id);
/**
* 释放camera资源
*/
public abstract void releaseCamera();
public abstract void startFaceDetection();
public abstract void stopFaceDetection();
/**
* 照相
*/
public abstract void myTakePic();
public abstract void onPictureTaken(byte[] data, Camera cameras);
public abstract void setOrientationHint();
public abstract void startRecord();
/**
* 停止录制
*/
public abstract void stopRecord();
public abstract void storedImage(final byte[] data, final int photonum);
/**
* 设置对焦区域
*/
public abstract void setArea();
public abstract void updateCameraParametersInitialize();
public abstract boolean onTouchEvent(MotionEvent e);
/**
* 计算对焦区域
*
* @param focusWidth
* 对焦图片的宽
* @param focusHeight
* 对焦图片的高
* @param areaMultiple
* 乘以的倍数
* @param x
* 触点的x坐标
* @param y
* 触点的y坐标
* @param previewWidth
* surfaceview的宽
* @param previewHeight
* surfaceview的高
* @param rect
* 对焦的矩阵
* @return 计算了的矩阵
*/
public abstract Rect calculateTapArea(int focusWidth, int focusHeight,
double areaMultiple, int x, int y, int previewWidth,
int previewHeight, Rect rect);
/* 移动图片的方法 */
public abstract void picMove(float x, float y, ImageView imageView,
int intWidth, int intHeight, int intScreenX, int intScreenY);
public abstract void setPreviewCallback(PreviewCallback my);
public abstract int saveImage(final byte[] data, final int photonum);
// public abstract void setOnTouchListener(OnTouchListener onTouchListener);
}