Skip to main content

相机参数设置实现教程

1. 概述

使⽤Mobile SDK 设定相机参数,可以选择很多不同的参数设置,本教程旨在帮助您基本了解 MobileSDK 相机参数相关接⼝的使⽤。 我们将分2个步骤: 1,从SDK调起 AutelCameraManager(或者其他派生类) 2,相机参数设置。 注:相机功能要基于SDK集成之后,首要参考SDK入门文档。

2. 功能实现

2.1. 从SDK集成过程中Autel获取product 对象

此处在SDK集成时候做的,我们只是告知开发者BaseProduct对象的来处(Autel.setProductConnectListener中)

Autel.setProductConnectListener(new ProductConnectListener() {
@Override
public void productConnected(BaseProduct product) {
// BaseProduct product
getApplicationContext().setCurrentProduct(product);
}
@Override
public void productDisconnected() {

}
});

2.2. Activity中使用product对象

CameraActivity.java文件为例,其他的雷同。

2.2.1. 将product 转换成AutelCameraManager类型的实例,即autelCameraManager

AutelCameraManager autelCameraManager;  
@Override
protected void onCreate(Bundle savedInstanceState) {
BaseProduct product = getApplicationContext().getCurrentProduct();
if (null != product) {
autelCameraManager = product.getCameraManager();
}
}

2.2.2. 通过autelCameraManager获取具体的相机类型,如CameraR12Fragment

        autelCameraManager.setCameraChangeListener(new CallbackWithTwoParams<CameraProduct, AutelBaseCamera>() {
@Override
public void onSuccess(final CameraProduct data1, final AutelBaseCamera data2) {
switch (data1) {
case R12:
changePage(CameraR12Fragment.class);
break;
case XB015:
changePage(CameraXB015Fragment.class);
break;
case XT701:
changePage(CameraXT701Fragment.class);
break;
case XT705:
changePage(CameraXT705Fragment.class);
break;
case XT706:
changePage(CameraXT706Fragment.class);
break;
case XT709:
changePage(CameraXT709Fragment.class);
break;

default:
changePage(CameraNotConnectFragment.class);
}

}

@Override
public void onFailure(AutelError error) {
Log.v(TAG, "initListener onFailure error " + error.getDescription());
cameraType.setText("currentCamera connect broken " + error.getDescription());
}
});

2.2.3 在CameraR12Fragment中获取相机和管理器

相机管理器
AutelR12R12ParameterRangeManager
AutelXB015XB015ParameterRangeManager
AutelXT701XT701ParameterRangeManager
AutelXT705XT705ParameterRangeManager
AutelXT706XT706ParameterRangeManager
AutelXT709XT706ParameterRangeManager

以下我们按照AutelXT701相机为例子看:

    AutelXT701 xb015;
private XT701ParameterRangeManager rangeManager;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.xxxxx, null);
xb015 = (AutelXT701) ((CameraActivity) getActivity()).getCurrentCamera();
rangeManager = xb015.getParameterRangeManager();
return view;
}

2.2.4 函数调用

1660095137036

当我们操作了setMediaMode 代码会做什么呢?如下所示:

view.findViewById(R.id.getMediaMode).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
autelR12.getMediaMode(new CallbackWithOneParam<MediaMode>() {
@Override
public void onSuccess(final MediaMode data) {
if (null != currentVideoResolutionAndFps) {
shutterSpeedAdapter.setData(rangeManager.getCameraShutterSpeed());
shutterList.setAdapter(shutterSpeedAdapter);
}
}

@Override
public void onFailure(AutelError error) {
logOut("getMediaMode " + error.getDescription());
}
});
}
});

会调用autelR12,rangeManager身上的函数。下面我们介绍一下相机参数具体有哪些:

3. 参数设置

3.1 接口:AutelBaseCamera 相机实现的基类

/**
* This interface is used to provide basic camera functions.
* 此接口用于提供基本摄像机功能。
*/
public interface AutelBaseCamera {

/**
* 违章车牌记录监听
*
* @param callback
*/
void setTrafficOffenceRecordListener(CallbackWithOneParam<TrafficOffenceRecord> callback);

/**
* Sets the listener for the current media mode to monitor the real-time data.
* 设置当前媒体模式监听器以监听实时数据。
* @param callback the listener will be cancelled when the callback is null.回调为空时,监听器将被取消。
*/
void setMediaModeListener(CallbackWithOneParam<MediaMode> callback);

/**
* Sets the listener for the SD card to monitor the real-time data.
* 设置SD卡监听器以监听实时数据。
* @param callback the listener will be cancelled when the callback is null.回调为空时,监听器将被取消。
*/
void setSDCardStateListener(CallbackWithOneParam<SDCardState> callback);

/**
* Sets the listener for the camera shooting and recording to monitor the real-time data.
* 设置摄像机拍摄录制侦听器以监听实时数据。
* @param callback the listener will be cancelled when the callback is null.回调为空时,监听器将被取消。
*/
void setMediaStateListener(CallbackWithTwoParams<MediaStatus, String> callback);

/**
* Sends the format SD card command to the camera.
* 返回可观察对象以发送格式化SD卡命令到摄像机。
* <p>
* Note: first, see if the camera is in idle condition. If yes, then this operation can be continued.
* 注意:首先,查看摄像机是否处于空闲状态。如果是,则可以继续此操作。
* @param callback the callback when format the SD card.
*/
void formatSDCard(CallbackWithNoParam callback);

/**
* Sends the camera reset command to the camera.
* 返回可观察对象以发送摄像机重置命令到摄像机。
* <p>
* Note: first, see if the camera is in idle condition. If yes, then this operation can be continued.
* 注意:首先,查看摄像机是否处于空闲状态。如果是,则可以继续此操作。
* @param callback the callback when reset the camera.
*/
void resetDefaults(CallbackWithNoParam callback);

/**
* Gets the current camera working state.
* 返回可观察对象以获取当前摄像机工作状态。
* @param callback the callback when get the current camera working state.获取当前摄像机工作状态的可观察对象。
*/
void getWorkState(CallbackWithOneParam<WorkState> callback);

/**
* Gets the current SD card state.
* 返回可观察对象以获取当前SD卡状态。
* @param callback the callback when get the current SD card state.获取当前SD卡状态的可观察对象。
*/

void getSDCardState(CallbackWithOneParam<SDCardState> callback);

/**
* Gets the free space of the SD card.Unit: Byte
* 返回一个可观察对象以获取SD卡可用空间。单位:字节
* @param callback the callback when get the free space of the SD card.获取SD卡可用空间的可观察对象。
*/
void getSDCardFreeSpace(CallbackWithOneParam<Long> callback);

/**
* Gets the camera model.
* 返回可观察对象以获取摄像机型号。
* @return the camera model.获取摄像机型号的可观察对象。
*/
CameraProduct getProduct();

/**
* Gets the current version of the camera.
* 返回可观察对象以获取当前摄像机版本。
* @param callback the callback when get the current version of the camera.获取当前摄像机版本的可观察对象。
*/
void getVersion(CallbackWithOneParam<String> callback);

/**
* Sets the camera media mode.
* 返回可观察对象以设置摄像机媒体模式。
* @param mediaMode the media mode enum.媒体模式枚举
* @param callback the callback when set the camera media mode.设置摄像机媒体模式的可观察对象。
*/
void setMediaMode(MediaMode mediaMode, CallbackWithNoParam callback);

/**
* Gets the current camera media mode.
* 返回可观察对象以获取当前摄像机媒体模式。
* @param callback the callback when get the current camera media mode.获取当前摄像机媒体模式的可观察对象。
*/
void getMediaMode(CallbackWithOneParam<MediaMode> callback);

/**
* Request the camera to take a photo.
* 请求摄像机拍照。
* <p>
* Note:
* 注意:
* </p>
* <p>
* 1. Firstly, see if the camera is in the photo shooting mode.
* 1. 首先,查看摄像机是否处于拍照模式。
* </p>
* <p>
* 2. See if the camera is idle in the current mode.
* 2. 查看摄像机在当前模式下是否空闲。
* </p>
* <p>
* 3. See if the SD card is in the available state (CARD_READY,LOW_SPEED_CARD are all available).
* 3. 查看SD卡是否处于可用状态(卡就绪CARD_READY、低速卡LOW_SPEED_CARD均可用)。
* </p>
*
* @param callback the callback when start taking photos.请求摄像机拍照的可观察对象。
*/
void startTakePhoto(CallbackWithNoParam callback);

/**
* Request the camera to start recording.
* 请求摄像机开始录制
* <p>
* Note:
* </p>
* <p>
* 1. See if the camera is in the recording mode.
* 1. 查看摄像机是否处于录制模式。
* </p>
* <p>
* 2. See if the camera is idle in the current mode.
* 2. 查看摄像机在当前模式下是否空闲。
* </p>
* <p>
* 3. See if SD card is in the available state.
* 3. 查看SD卡是否处于可用状态。
* </p>
*
* @param callback the callback when start recording videos.请求摄像机开始录制的可观察对象。
*/
void startRecordVideo(CallbackWithNoParam callback);

/**
* Request the camera to stop recording.
* 请求摄像机停止录制。
* <p/>
* Note:
* 注意:
* <p/>
* See if the camera is recording now.
* 查看摄像机是否正在录制。
* @param callback the callback when stop recording videos.请求摄像机停止录制的可观察对象。
*/
void stopRecordVideo(CallbackWithNoParam callback);

/**
* Request the camera to stop taking time lapse photos.
* 请求摄像机停止定时拍。
* <p/>
* Note:
* <p/>
* See if the camera is taking time lapse photos now.
* 查看摄像机是否正在定时拍。
* @param callback the callback when stop taking time lapse photos.请求摄像机停止定时拍的可观察对象。
*/
void stopTakePhoto(CallbackWithNoParam callback);

/**
* Gets the current recording time.
*
* @param callback the callback when get the current recording time.
*/
void getCurrentRecordTime(CallbackWithOneParam<Integer> callback);

/**
* Gets the state information of the camera (returns R12StateInfo for R12, returns XB015StateInfo for XB015).
* 返回可观察对象以获取摄像机的状态信息(R12返回R12StateInfo,XB015返回XB015StateInfo)。
* @param callback the callback when get the state information of the camera.获取摄像机状态信息的可观察对象。
*/
void getStateInfo(CallbackWithOneParam<BaseStateInfo> callback);
/**
* Set interface mode after camera enters
* 设置摄像机工作模式为智能飞行模式。
* @param cameraPattern
* @param callback
*/
void setCameraPattern(CameraPattern cameraPattern, CallbackWithNoParam callback);

/**
* Lock gimbal when taking photo
* 待 拍照时云台锁定功能
* @param state
* @param callback
*/
void lockGimbalWhenTakePhoto(AutelSwitchState state, CallbackWithNoParam callback);

void setGpsCoordinateType(int type, CallbackWithNoParam callback);

void getGpsCoordinateType(CallbackWithOneParam<Integer> callback);

void setLiveScreenDir(int type, CallbackWithNoParam callback);

void getLiveScreenDir(CallbackWithOneParam<Integer> callback);
/**
* Converts to ReactiveX interface.
* 转换为ReactiveX接口。
* @return ReactiveX interface.ReactiveX接口。
*/
RxAutelBaseCamera toRx();

/**
* 任务录像监听
*/
void setMissionRecordWayPointListener(CallbackWithOneParam<MissionRecordWaypoint> callback);

/**
* 全景拍照监听
*/
void setPanoramicMissionListener(CallbackWithOneParam<PanoramicRealInfo> callback);

/**
* 设置全景拍照类型
*
* @param type 0-横拍,1-竖拍,2-广角拍,3-球形全景
*/
void setPanoramicType(PanoramicType type, CallbackWithNoParam callback);

/**
* 获取全景拍照类型
* 返回 0-横拍,1-竖拍,2-广角拍,3-球形全景
*/
void getPanoramicType(CallbackWithOneParam<Integer> callback);

/**
* 开始全景拍摄
*/
void startPanoramicShoot(CallbackWithNoParam callback);

/**
* 停止全景拍摄
*/
void stopPanoramicShoot(CallbackWithNoParam callback);

/**
* Sets the digital zoom scale, ranges from 100 to 200.
*
* @param factor the integer between 100 and 200.
* @param callback the callback when set the digital zoom scale.
*/
void setDigitalZoomScale(int factor, CallbackWithNoParam callback);

/**
* 开始加密
*
* @param encrypt
*/
void startEncryption(String encrypt, CallbackWithNoParam callback);

/**
* 开始解密
*/
void startDecryption(String decrypt, CallbackWithOneParam<Integer> callback);

/**
* 设置拍照模式 0 晴天 1 阴天
*
* @param mode
* @param callback
*/
void setImageMode(int mode, CallbackWithNoParam callback);

/**
* 获取拍照模式 0 晴天 1 阴天
*
* @param callback
*/
void getImageMode(CallbackWithOneParam<Integer> callback);

/**
* 设置标定格式
*
* @param mode 0 pix4D,1 默认
* @param callback
*/
void setCalibrationFormat(int mode, CallbackWithNoParam callback);


void getCalibrationFormat(CallbackWithOneParam<Integer> callback);

/**
* 设置滑动变焦
*
* @param mode 0 pix4D,1 默认
* @param callback
*/
void setZoomSlide(int mode, CallbackWithNoParam callback);
}

字段表1:MediaMode

/**
* The camera media mode value.
* 摄像机媒体模式值。
*/
public enum MediaMode {
/**
* The camera media mode is single shot.
* 摄像机媒体模式为单拍。
*/
SINGLE("singal", "Single"),
/**
* The camera media mode is recording videos.
* 摄像机媒体模式为视频录制。
*/
VIDEO("video", "Record"),
/**
* The camera media mode is timelapse.
* 摄像机媒体模式为定时拍。
*/
TIMELAPSE("timelapse", "Timelapse"),
/**
* The camera media mode is burst.
* 摄像机媒体模式为连拍。
*/
BURST("burst", "Burst"),
/**
* The camera media mode is AEB.
* 摄像机媒体模式为自动曝光
*/
AEB("aeb", "AEB"),
/**
* The camera media mode is HDR.
* 摄像机媒体模式为HDR
*/
HDR("hdr", "HDR"),
/**
* The camera media mode is MFNR.
* 摄像机媒体模式为纯净夜拍
*/
MFNR("mfnr", "MFNR"),
/**
* 摄像机媒体模式为移动延时摄影
* The camera media mode is MOTION_DELAY_SHOT.
*/
MOTION_DELAY_SHOT("MotionDelayShot", "MotionDelayShot"),
/**
* 摄像机媒体模式未知
>>>>>>> mp_modelc_release
* The camera media mode is unknown.
*/
UNKNOWN("unknown", "");

字段表2:SDCardState

/**
* The camera SD card status.
* 摄像机SD卡状态。
*/
public enum SDCardState {
/**
* The SD card is ready.
* SD卡准备好。
*/
CARD_READY("CARD_READY", "Ready", null),
/**
* No SD card.
* 无SD卡。
*/
NO_CARD("NO_CARD", "NoCard", AutelError.CAMERA_SDCARD_STATE_NO_CARD),
/**
* The SD card has an error.
* SD卡有错误。
*/
CARD_ERROR("CARD_ERROR", "Error", AutelError.CAMERA_SDCARD_STATE_CARD_ERROR),
/**
* The SD card has been full.
* SD卡已满。
*/
CARD_FULL("CARD_FULL", "Full", AutelError.CAMERA_SDCARD_STATE_CARD_FULL),
/**
* The SD card is not supported.
* 不支持SD卡。
*/
CARD_NOT_SUPPORT("CARD_NOT_SUPPORT", "CARD_NOT_SUPPORT", AutelError.CAMERA_SDCARD_STATE_CARD_NOT_SUPPORT),
/**
* Unknown file system.
* 未知的文件系统。
*/
UNKNOWN_FILE_SYSTEM_FAT("UNKNOWN_FS_FAT", "UnknownFileSystem", AutelError.CAMERA_SDCARD_STATE_UNKNOWN_FS_FAT),
/**
* The SD card is protected.
* SD卡受到保护。
*/
CARD_PROTECT("CARD_PROTECT", "Protected", AutelError.CAMERA_SDCARD_STATE_CARD_PROTECT),
/**
* The SD card has a low speed.
* SD卡速度低。
*/
LOW_SPEED_CARD("LOW_SPEED_CARD", "LowSpeed", null),

FORMAT_SUCCESS("FormatSuccess", "FormatSuccess", null),

/**
* The SD card has a low speed to stop recording.
* SD卡速度低,停止录制。
*/
LOW_SPEED_CARD_STOP_RECORD("LowSpeedStopRecord", "LowSpeedStopRecord", null),
/**
* The SD card has a Formatting.
* SD卡已格式化。
*/
FORMATTING("Formatting", "Formatting", null),
/**
* Camera storage card format fails.
* 摄像机存储卡格式化失败。
*/
FORMAT_FAIL("FormatFail", "FormatFail", null),

/**
* The camera SD card status is unknown.
* 摄像机SD卡状态未知。
*/
UNKNOWN("unknown", "unknown",AutelError.COMMAND_FAILED);
}

字段表3:MediaStatus

/**
* The camera media working status.
* 摄像机媒体工作状态。
*/
public enum MediaStatus {
/**
* The camera media working status is starting to take the single photo.
* 摄像机媒体工作状态为开始进行单拍。
*/
SINGLE_START(""),
/**
* The camera media working status is starting to burst the photos.
* 摄像机媒体工作状态为开始进行连拍。
*/
BURST_START(""),
/**
* The camera media working status is starting to use timelapse.
* 摄像机媒体工作状态为开始进行定时拍。
*/
TIME_LAPSE_START(""),
/**
* The camera media working status is starting to burst photos using the auto exposure function.
* 摄像机媒体工作状态为开始使用自动曝光功能进行连拍。
*/
AUTO_EXPOSURE_BURST_START(""),
/**
* Start taking HDR photo
* 开始拍摄HDR照片
*/
HDR_START(""),
/**
* Start night shot
* 开始夜拍
*/
MFNR_START(""),
/**
* The camera media working status is stopping to burst photos.
* 摄像机媒体工作状态为停止进行连拍。
*/
BURST_STOP(""),
/**
* The camera media working status is stopping to use timelapse.
* 摄像机媒体工作状态为停止进行定时拍。
*/
TIME_LAPSE_STOP(""),
/**
* The camera media working status is stopping to burst photos using the auto exposure function.
* 摄像机媒体工作状态为停止使用自动曝光功能进行连拍。
*/
AUTO_EXPOSURE_BURST_STOP(""),
/**
* The camera media working status is finishing to take photos.
* 摄像机媒体工作状态为结束拍照。
*/
PHOTO_TAKEN_DONE("PHOTO_TAKEN_DONE"),

/**
* The camera media working status is finishing to take photos.
* 摄像机媒体工作状态为单次拍照完成。
*/
PHOTO_CAT("PHOTO_CAT"),

/**
* The camera media working status is finishing to save photos.
* 摄像机媒体工作状态为单次拍照已保存。
*/
PHOTO_SAVE("PHOTO_SAVE"),

/**
* The camera media working status is starting to record videos.
* 摄像机媒体工作状态为开始视频录制。
*/
RECORD_START(""),

/**
*
* The camera media working status is stopping to record videos.
* 摄像机媒体工作状态为停止视频录制。
*/
RECORD_STOP("Success"),

/**
* The camera media working status is stopping to record videos because of the write error.
* 摄像机媒体工作状态为由于写入错误停止视频录制。
*/
RECORD_FAILED_WRITE_ERROR("WriteError"),
/**
* The camera media working status is stopping to record videos because of the SD card was removed.
* 摄像机媒体工作状态为由于SD卡移除停止视频录制。
*/
RECORD_FAILED_SDCARD_REMOVED("SdCardRemove"),

/**
* The camera media working status is starting to recover videos.
* 摄像机媒体工作状态为开始恢复视频。
*/
RECOVER_START(""),

/**
* The camera media working status is finishing to recover videos.
* 摄像机媒体工作状态为结束恢复视频。
*/
RECOVER_COMPLETE(""),

/**
* The camera media working status is failing to recover videos.
* 摄像机媒体工作状态为未能恢复视频。
*/
RECOVER_FAILED(""),

/**
* The camera media working status: the buffer is full when recording videos.
* 摄像机媒体工作状态:录制视频时缓冲区已满。
*/
RECORD_BUFFER_FULL("NoMoreBuffer"),

/**
* The camera media working status: the camera is updating.
* 摄像机媒体工作状态:摄像机正在更新。
*/
UPDATING(""),
/**
* Camera current status: Upgrade start.
* 摄像机当前状态:升级开始。
*/
UPDATE_START(""),
/**
* Camera current status: Upgrade completed
* 摄像机当前状态:升级完成。
*/
UPDATE_COMPLETE(""),
/**
* Camera current status: Upgrade failed.
* 摄像机当前状态:升级失败。
*/
UPDATE_FAILED(""),

/**
* The camera media working status is shutdown.
* 摄像机媒体工作状态为关机。
*/
SHUTDOWN(""),
/**
* Camera current status: Setup completed.
* 摄像机当前状态:安装完成。
*/
RESET_SUCCESS(""),
/**
* Camera current status: Setup failed.
* 摄像机当前状态:安装失败。
*/
RESET_FAILED(""),
/**
* The camera media working status is unknown.
* 摄像机媒体工作状态为未知。
*/
UNKNOWN("");
}

字段表4:WorkState

/**
* The current camera working status.
* 当前摄像机工作状态。
*/
public enum WorkState {
/**
* The current camera working status is idle.
* 当前摄像机工作状态为空闲。
*/
IDLE("idle", "Idle"),
/**
* The current camera working status is engaged in taking photos.
* 当前摄像机工作状态为正在进行拍照。
*/
CAPTURE("capture", "TakingPhoto"),
/**
* The current camera working status is recording videos.
* 当前摄像机工作状态为正在进行视频录制。
*/
RECORD("record", "Recording"),
/**
* The current camera working status is taking photos during the recording.
* 当前摄像机工作状态为在录制过程中进行拍照。
*/
RECORD_PHOTO_TAKING("record_taking", "Recording_taking"),
/**
* The current camera working status is unknown.
* 当前摄像机工作状态未知。
*/
UNKNOWN("unknown", "unknown");
}

字段表5:CameraPattern

/**
* This port is to provide enum of intelligent flight interface.
* 该端口用于提供智能飞行接口的枚举。
*/
public enum CameraPattern {
/**
* Manual flight
* 手动飞行
*/
FREE_FLIGHT(0),
/**
* Mission flight
* 任务飞行
*/
MISSION_FLIGHT(1),
/**
* Intelligent flight (track, viewpoint)
* 智能飞行(跟踪、视角)
*/
INTELLIGENT_FLIGHT(2),
/**
* Time-lapse photography
* 定时摄影
*/
DELAYED_PHOTOGRAPHY(3),

/**
* Visual orbit
* 视觉环绕
*/
VISUAL_ORBIT(4),
/**
* 全景拍照
*/
PANORAMIC(5),
/**
* 任务录制
*/
MISSION_RECORD(6),
/**
* 交警项目
*/
TRAFFIC_POLICE(7),
/**
* 智能环绕 /短片模式
*/
SHORT_VIDEO(9), //短片模式

/**
* 夜景模式
*/
NIGHT(11), //夜景模式

UNKNOWN(-1);
}

字段表5:AutelSwitchState

/**
* 状态开关枚举类
*/
public enum AutelSwitchState {

/**
* ON
*/
ON("ON"),

/**
* OFF
*/
OFF("OFF");
}

接口6:RxAutelBaseCamera

/**
* This interface is used to provide basic camera functions.
* 此接口用于提供基本摄像机功能。
*/
public interface RxAutelXB015 {

/**
* Sets the listener for the SD card to monitor the real-time data.
* 设置SD卡监听器以监听实时数据。
* @param callback the listener will be cancelled when the callback is null.回调为空时,监听器将被取消。
*/
void setSDCardStateListener(CallbackWithOneParam<SDCardState> callback);

/**
* Sets the listener for the current media mode to monitor the real-time data.
* 设置当前媒体模式监听器以监听实时数据。
* @param callback the listener will be cancelled when the callback is null.回调为空时,监听器将被取消。
*/
void setMediaModeListener(CallbackWithOneParam<MediaMode> callback);

/**
* Sets the listener for the camera shooting and recording to monitor the real-time data.
* 设置摄像机拍摄录制侦听器以监听实时数据。
* @param callback the listener will be cancelled when the callback is null.回调为空时,监听器将被取消。
*/
void setMediaStateListener(CallbackWithTwoParams<MediaStatus, String> callback);

/**
* Returns an observable object to send the format SD card command to the camera.
* 返回可观察对象以发送格式化SD卡命令到摄像机。
* <p>
* Note: first, see if the camera is in idle condition. If yes, then this operation can be continued.
* 注意:首先,查看摄像机是否处于空闲状态。如果是,则可以继续此操作。
* @return an observable object to send the format SD card command to the camera.发送格式化SD卡命令到摄像机的可观察对象。
*/
Observable<Boolean> formatSDCard();

/**
* Returns an observable object to send the camera reset command to the camera.
* 返回可观察对象以发送摄像机重置命令到摄像机。
* Note: first, see if the camera is in idle condition. If yes, then this operation can be continued.
* 注意:首先,查看摄像机是否处于空闲状态。如果是,则可以继续此操作。
* @return an observable object to send the camera reset command to the camera.发送摄像机重置命令到摄像机的可观察对象。
*/
Observable<Boolean> resetDefaults();

/**
* Returns an observable object to get the current camera working state.
* 返回可观察对象以获取当前摄像机工作状态。
* @return an observable object to get the current camera working state.获取当前摄像机工作状态的可观察对象。
*/
Observable<WorkState> getWorkStatus();

/**
* Returns an observable object to get the current SD card status.
* 返回可观察对象以获取当前SD卡状态。
* @return an observable object to get the current SD card status.获取当前SD卡状态的可观察对象。
*/
Observable<SDCardState> getSDCardStatus();

/**
* Returns an observable object to get the free space of the SD card.Unit: Byte
* 返回一个可观察对象以获取SD卡可用空间。单位:字节
* @return an observable object to get the free space of the SD card.获取SD卡可用空间的可观察对象。
*/
Observable<Long> getSDCardFreeSpace();

/**
* Returns an observable object to get the camera model.
* 返回可观察对象以获取摄像机型号。
* @return an observable object to get the camera model.获取摄像机型号的可观察对象。
*/
Observable<CameraProduct> getProduct();

/**
* Returns an observable object to get the current camera version.
* 返回可观察对象以获取当前摄像机版本。
* @return an observable object to get the current camera version.获取当前摄像机版本的可观察对象。
*/
Observable<String> getVersion();

/**
* Returns an observable object to set the camera media mode.
* 返回可观察对象以设置摄像机媒体模式。
* @param mediaMode the media mode enum.媒体模式枚举。
* @return an observable object to set the camera media mode.设置摄像机媒体模式的可观察对象。
*/
Observable<Boolean> setMediaMode(MediaMode mediaMode);

/**
* Returns an observable object to get the current camera media mode.
* 返回可观察对象以获取当前摄像机媒体模式。
* @return an observable object to get the current camera media mode.获取当前摄像机媒体模式的可观察对象。
*/

Observable<MediaMode> getMediaMode();

/**
* Request the camera to take a photo.
* 请求摄像机拍照。
* <p>
* Note:
* 注意:
* </p>
* <p>
* 1. Firstly, see if the camera is in the photo shooting mode.
* 1. 首先,查看摄像机是否处于拍照模式。
* </p>
* <p>
* 2. See if the camera is idle in the current mode.
* 2. 查看摄像机在当前模式下是否空闲。
* </p>
* <p>
* 3. See if the SD card is in the available state (CARD_READY,LOW_SPEED_CARD are all available).
* 3. 查看SD卡是否处于可用状态(卡就绪CARD_READY、低速卡LOW_SPEED_CARD均可用)。
* </p>
*
* @return an observable object to request the camera to take a photo.请求摄像机拍照的可观察对象。
*/
Observable<Boolean> startTakePhoto();

/**
* Request the camera to start recording.
* 请求摄像机开始录制
* <p>
* Note:
* </p>
* <p>
* 1. See if the camera is in the recording mode.
* 1. 查看摄像机是否处于录制模式。
* </p>
* <p>
* 2. See if the camera is idle in the current mode.
* 2. 查看摄像机在当前模式下是否空闲。
* </p>
* <p>
* 3. See if SD card is in the available state.
* 3. 查看SD卡是否处于可用状态。
* </p>
*
* @return an observable object to request the camera to start recording.请求摄像机开始录制的可观察对象。
*/
Observable<Boolean> startRecordVideo();

/**
* Request the camera to stop recording.
* 请求摄像机停止录制。
* <p/>
* Note:
* 注意:
* <p/>
* See if the camera is recording now.
* 查看摄像机是否正在录制。
* @return an observable object to request the camera to stop recording.请求摄像机停止录制的可观察对象。
*/
Observable<Boolean> stopRecordVideo();

/**
* Request the camera to stop taking time lapse photos.
* 请求摄像机停止定时拍。
* <p/>
* Note:
* <p/>
* See if the camera is taking time lapse photos now.
* 查看摄像机是否正在定时拍。
* @return an observable object to request the camera to stop taking time lapse photos.请求摄像机停止定时拍的可观察对象。
*/
Observable<Boolean> stopTakePhoto();

/**
* Returns an observable object to get the state information of the camera (returns R12StateInfo for R12, returns XB015StateInfo for XB015, returns XT701StateInfo for XT701, returns XT705StateInfo for XT705, returns XT706StateInfo for XT706).
* 返回可观察对象以获取摄像机的状态信息(R12返回R12StateInfo,XB015返回XB015StateInfo,XT701返回XT701StateInfo,XT705返回XT705StateInfo,XT706返回XT706StateInfo)。
* @return an observable object to get the state information of the camera (returns R12StateInfo for R12, returns XB015StateInfo for XB015, returns XT701StateInfo for XT701, returns XT705StateInfo for XT705, returns XT706StateInfo for XT706).获取摄像机状态信息的可观察对象(R12返回R12StateInfo,XB015返回XB015StateInfo,XT701返回XT701StateInfo,XT705返回XT705StateInfo,XT706返回XT706StateInfo)。
*/
Observable<BaseStateInfo> getStateInfo();

/**
* Set the camera working mode in intelligent flight mode.
* 设置摄像机工作模式为智能飞行模式。
* @return an observable object to set the camera working mode in intelligent flight mode.设置摄像机工作模式为智能飞行模式的可观察对象。
*/
Observable<Boolean> setCameraPattern(CameraPattern cameraPattern);
/**
* Lock gimbal when taking photo
* 拍照时云台锁定功能
* @param state Switch status on or off 开关状态 开启或关闭
*/
Observable<Boolean> lockGimbalWhenTakePhoto(AutelSwitchState state);

/**
* Set RTK GPS coordinate type
* 设置RTK GPS坐标类型
* @param type coordinate type 坐标类型
* @return RTK GPS coordinate type GPS坐标类型
*/
Observable<Boolean> setGpsCoordinateType(int type);

/**
* Get RTK GPS coordinate type
* 获取RTK GPS坐标类型
* @return RTK GPS坐标类型 RTK GPS coordinate type
*/
Observable<Integer> getGpsCoordinateType();

}
字段表6.1:CameraProduct
/**
* The type of the camera product.
* 摄像机产品的类型。
*/
public enum CameraProduct {
/**
* The current camera type is R12.
* 当前摄像机类型为R12。
*/
R12("XB004") {
},
/**
* The current camera type is XB015.
* 当前摄像机类型为XB015。
*/
XB015("XB015") {
},
/**
* The current camera type is XT701.
* 当前摄像机类型为XT701。
*/
XT701("XT701") {
},
/**
* The current camera type is XT702.
* 当前摄像机类型为XT702。
*/
XT702("XT702") {
},
// /**
// * The current camera type is XT703.
// */
// XT703("XT703") {
// },
/**
* The current camera type is XT705.
* 当前摄像机类型为XT705。
*/
XT705("XT705") {
},
/**
* The current camera type is XT706.
* 当前摄像机类型为XT706。
*/
XT706("XT706") {
},
/**
* The current camera type is XT709.
* 当前摄像机类型为XT709。
*/
XT709("XT709") {
},
/**
* The current camera type is XT712.
* 当前摄像机类型为XT712。
*/
// XT712("XT712") {
//},
/**
* The current camera type is unknown.
* 当前摄像机类型未知。
*/
UNKNOWN("UNKNOWN") {
};
接口6.2:BaseStateInfo
/**
* This interface is used to provide current state information of the camera.
* 该接口用于提供摄像机的当前状态信息。
*/

public interface BaseStateInfo {
/**
* Get the camera type.
* 获取摄像机的类型。
* @return the camera type.摄像机的类型。
*/
CameraProduct getType();

/**
* Get the camera working state.
* 获取摄像机工作状态
* @return the camera working state.摄像机工作状态
*/
WorkState getWorkState();

/**
* Get the media mode of the camera.
* 获取摄像机的媒体模式。
* @return the media mode of the camera.摄像机的媒体模式。
*/
MediaMode getMediaMode();

/**
* Get the SD card state of the camera.
* 获取摄像机的SD卡状态。
* @return the SD card state of the camera.摄像机的SD卡状态。
*/
SDCardState getSDCardState();
/**
* The gimbal locking state when taking pictures
* 拍照时云台锁定状态
*/
GimbalLockState getGimbalLockState();
}

字段表7:CameraProduct

/**
* The type of the camera product.
* 摄像机产品的类型。
*/
public enum CameraProduct {
/**
* The current camera type is R12.
* 当前摄像机类型为R12。
*/
R12("XB004") {
},
/**
* The current camera type is XB015.
* 当前摄像机类型为XB015。
*/
XB015("XB015") {
},
/**
* The current camera type is XT701.
* 当前摄像机类型为XT701。
*/
XT701("XT701") {
},
/**
* The current camera type is XT702.
* 当前摄像机类型为XT702。
*/
XT702("XT702") {
},
// /**
// * The current camera type is XT703.
// */
// XT703("XT703") {
// },
/**
* The current camera type is XT705.
* 当前摄像机类型为XT705。
*/
XT705("XT705") {
},
/**
* The current camera type is XT706.
* 当前摄像机类型为XT706。
*/
XT706("XT706") {
},
/**
* The current camera type is XT709.
* 当前摄像机类型为XT709。
*/
XT709("XT709") {
},
/**
* The current camera type is XT712.
* 当前摄像机类型为XT712。
*/
// XT712("XT712") {
//},
/**
* The current camera type is unknown.
* 当前摄像机类型未知。
*/
UNKNOWN("UNKNOWN") {
};
字段表6.3:GimbalLockState
public enum GimbalLockState {
LOCK(1), UNLOCK(0);
}

3.2 接口AutelXT701

/**
* This interface is used to provide XT701 camera function.
*/
public interface AutelXT701 extends AutelBaseCamera {

/**
* Set flash card status monitoring
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setFlashMemoryCardStateListener(CallbackWithOneParam<MMCState> callback);
/**
* 过曝/欠曝告警
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setPhotoExposureListener(CallbackWithOneParam<Boolean> callback);
/**
* Set AF center status monitoring
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setAFCenterListener(CallbackWithOneParam<Boolean> callback);

/**
* Set time-lapse photography status monitoring
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setMotionDelayShotListener(CallbackWithOneParam<MotionDelayShot> callback);


/**
* Triggered when any setting data changes
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setSettingChangedListener(CallbackWithOneParam<SettingEvent> callback);

/**
* Sets the listener for the camera information to monitor the real-time data.
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setInfoListener(CallbackWithOneParam<XT701CameraInfo> callback);

/**
* Returns the parameter range manager of XT701 camera.
*
* @return the parameter range manager of XT701 camera.
*/
XT701ParameterRangeManager getParameterRangeManager();

/**
* Sets the listener for the histogram switch to monitor the real-time data.
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setHistogramListener(CallbackWithOneParam<int[]> callback);

/**
* Sets the listener for the camera auto focus to monitor the real-time data.
*
* @param callback the listener will be cancelled when the callback is null.
*/
void setAutoFocusStateListener(CallbackWithTwoParams<LensFocusStatus, List<SpotMeteringArea>> callback);

/**
* Sets the camera spot metering(5*9).
* <p/>
* Note: it is not available when auto exposure lock is in LOCK or DISABLE state.
* <p/>
* Note: it is available when auto exposure lock is in UNLOCK state.
*
* @param x raster No.x in horizontal, ranges from 1 to 5.
* @param y raster No.y in vertical, ranges from 1 to 9.
* @param callback the callback when set the camera spot metering(5*9).
*/
void setSpotMeteringArea(int x, int y, CallbackWithNoParam callback);

/**
* Sets the camera auto exposure lock.
* <p/>
* Note:
* <p/>
* It is cannot be set in manual mode.
* <p/>
* Only LOCK and UNLOCK are supported in other modes.
*
* @param lockState the enum of the auto exposure lock state.
* @param callback the callback when set the camera auto exposure lock.
*/
void setAutoExposureLockState(AutoExposureLockState lockState, CallbackWithNoParam callback);

/**
* Sets the camera exposure values.
* <p/>
* Note: this function is only available in auto mode.
*
* @param exposure the camera exposure values.
* @param callback the callback when set the camera exposure values.
*/
void setExposure(ExposureCompensation exposure, CallbackWithNoParam callback);

/**
* Sets the camera ISO values.
* <p/>
* Note: this function is only available in manual mode.
*
* @param value the camera ISO values.
* @param callback the callback when set the camera ISO values.
*/
void setISO(CameraISO value, CallbackWithNoParam callback);

/**
* Sets the camera shutter values.
* <p/>
* Note: this function is only available in manual mode.
*
* @param value the camera shutter values.
* @param callback the callback when set the camera shutter values.
*/
void setShutter(ShutterSpeed value, CallbackWithNoParam callback);

/**
* Returns the camera color styles.
*
* @param callback the callback when get the camera color styles.
*/
void getColorStyle(CallbackWithOneParam<ColorStyle> callback);

/**
* Sets the camera white balance values.
*
* @param value the enum of the camera white balance values.
* @param callback the callback when set the camera white balance values.
*/
void setWhiteBalance(WhiteBalance value, CallbackWithNoParam callback);

/**
* Sets the camera color styles.
*
* @param value the enum of the camera color styles.
* @param callback the callback when set the camera color styles.
*/
void setColorStyle(ColorStyle value, CallbackWithNoParam callback);

/**
* Sets the switch values for the 3d noise reduction.
*
* @param enable whether enable the 3d noise reduction or not.
* @param callback the callback when set the switch values for the 3d noise reduction.
*/
void set3DNoiseReductionEnable(boolean enable, CallbackWithNoParam callback);

/**
* Sets the anti-flicker function.
* <p/>
* Note: it is only available in auto mode.
*
* @param value the enum values of the anti-flicker function.
* @param callback the callback when set the anti-flicker function.
*/
void setAntiFlicker(AntiFlicker value, CallbackWithNoParam callback);

/**
* Returns the auto exposure lock state.
*
* @param callback the callback when get the auto exposure lock state.
*/
void getAutoExposureLockState(CallbackWithOneParam<AutoExposureLockState> callback);

/**
* Returns the spot metering area values.
*
* @param callback the callback when get the spot metering area values.
*/
void getSpotMeteringArea(CallbackWithOneParam<SpotMeteringArea> callback);

/**
* Returns the anti-flicker status.
*
* @param callback the callback when get the anti-flicker status.
*/
void getAntiFlicker(CallbackWithOneParam<AntiFlicker> callback);

/**
* Returns the white balance value.
*
* @param callback the callback when get the white balance value.
*/
void getWhiteBalance(CallbackWithOneParam<WhiteBalance> callback);

/**
* Get exposure value
*
* @param callback the callback when get exposure value.
*/
void getExposure(CallbackWithOneParam<ExposureCompensation> callback);

/**
* Get shutter setting value
*
* @param callback the callback when get shutter setting value.
*/
void getShutter(CallbackWithOneParam<ShutterSpeed> callback);


/**
* Get camera ISO value
*
* @param callback the callback when get camera ISO value.
*/
void getISO(CallbackWithOneParam<CameraISO> callback);

/**
* Get exposure mode of camera
*
* @param callback the callback when get exposure mode of camera.
*/
void getExposureMode(CallbackWithOneParam<ExposureMode> callback);


/**
* Get 3d noise reduction switch status
*
* @return 3D noise reduction is on or not
* @param callback 3D noise reduction is on or not
*/
// void is3DNoiseReductionEnable(CallbackWithOneParam<Boolean> callback);

/**
* Set photo style
*
* @param value PhotoStyleType enum value to be set
*/
void setPhotoStyle(PhotoStyleType value, CallbackWithNoParam callback);

/**
* Set custom photo style value
*
* @param contrast ranges from -3 to 3
* @param saturation ranges from -3 to 3
* @param sharpness ranges from -3 to 3
*/
void setPhotoStyle(int contrast, int saturation, int sharpness, CallbackWithNoParam callback);


/**
* Get histogram switch status
*
* @param callback the callback when get histogram switch status.
*/
void isHistogramStatusEnable(CallbackWithOneParam<Boolean> callback);

/**
* Set video subtitle switch value
*
* @param enable whether enable video subtitle switch value.
*/
void setVideoSubtitleEnable(boolean enable, CallbackWithNoParam callback);

/**
* Get video subtitle switch status
*
* @param callback the callback when get video subtitle switch status
*/
void isSubtitleEnable(CallbackWithOneParam<Boolean> callback);

/**
* Get photo style
*
* @param callback the callback when get photo style.
*/
void getPhotoStyle(CallbackWithOneParam<PhotoStyle> callback);


/**
* Get focus mode
*
* @param callback the callback when gets focus mode
*/
void getFocusMode(CallbackWithOneParam<LensFocusMode> callback);

/**
* @param callback
* Get AF metering point
*
* @param callback the callback when get AF metering point
*/
void getFocusAFSpotArea(CallbackWithOneParam<SpotMeteringArea> callback);

/**
* Set camera focus mode
* @param param param CameraLensFocusMode enum value to be set
* @param param CameraLensFocusMode enum value to be set
*/
void setFocusMode(LensFocusMode param, CallbackWithNoParam callback);

/**
* Set camera mode
*
* @param param ExposureMode value to be set
*/
void setExposureMode(ExposureMode param, CallbackWithNoParam callback);


/**
* Get camera focus distance
*
* @param callback the callback when get camera focus distance.
*/
void getFocusDistance(CallbackWithOneParam<Integer> callback);

/**
* <p/>
* Set camera focus position, , ranges from 10 cm to 10000 cm (Only valid MF mode).
* <p/>
* Unit: cm
* <p/>
* Note: this is available in CameraLensFocusMode MF mode.
*/
void setFocusDistance(int objectDistance, CallbackWithNoParam callback);

/**
* Get digital zoom scale
*
* @param callback the callback when get digital zoom scale.
*/
void getDigitalZoomScale(CallbackWithOneParam<Integer> callback);

/**
* Set camera zoom factor, ranges from 100 to 200
*
* @param factor zoom factor,ranges from 100 to 200.
* @param callback the callback when set camera zoom factor.
*/
void setDigitalZoomScale(int factor, CallbackWithNoParam callback);

/**
* Set camera Auto Focus meter
*
* @param x raster No.x in horizontal lines, ranges from 1 to 100
* @param y raster No.y in vertical lines, ranges from 1 to 100
* Note: this is available in AF mode
*/
void setPhotoAutoFocusMeter(int x, int y, CallbackWithNoParam callback);

/**
* Request the camera to take photos
* <p/>
* Focus before shooting(average focus)
* <p/>
* Note:
* <p/>
* 1. See if the camera is in photo shooting mode
* <p/>
* 2. See if the camera is idle in the current mode
* <p/>
* 3. See if the SD card is available
*/
void startTakePhotoWithFocus(CallbackWithNoParam callback);

/**
* Set AutelCamera burst photo count value
*
* @param value PhotoBurstCount enum value to be set
*/
void setPhotoBurstCount(PhotoBurstCount value, CallbackWithNoParam callback);

/**
* Set timelapse interval value
*
* @param value PhotoTimelapseInterval enum value to be set
*/
void setPhotoTimelapseInterval(PhotoTimelapseInterval value, CallbackWithNoParam callback);

/**
* Set camera AEB count
*
* @param value PhotoAEBCount enum value to be set
*/
void setPhotoAEBCount(PhotoAEBCount value, CallbackWithNoParam callback);

/**
* Get AEB photo count
* @return AEB photo count
* @param callback AEB photo count
*/
void getPhotoAEBCount(CallbackWithOneParam<PhotoAEBCount> callback);

/**
* Get burst photo count
*
* @return burst photo count
* @param callback burst photo count
*/
void getPhotoBurstCount(CallbackWithOneParam<PhotoBurstCount> callback);

/**
* Get interval for timelapse mode
*
* @return interval for timelapse
* @param callback interval for timelapse
*/
void getPhotoTimelapseInterval(CallbackWithOneParam<PhotoTimelapseInterval> callback);

/**
* Get the number of videos
*
* @return number of videos
* @param callback number of videos
*/
void getVideoSum(CallbackWithOneParam<VideoSum> callback);

/**
* Get the number of photos can be taken
*
* @return number of photos can be taken
* @param callback number of photos can be taken
*/
void getLeftPhotoSum(CallbackWithOneParam<Integer> callback);

/**
* Get video format
*
* @return video format
* @param callback video format
*/
void getVideoFormat(CallbackWithOneParam<VideoFormat> callback);

/**
* Set camera video format
*
* @param value VideoFormat enum value to be set
*/
void setVideoFormat(VideoFormat value, CallbackWithNoParam callback);

/**
* Get video standard
*
* @return camera standard: NTSC, PAL
* @param callback the callback when get video standard: NTSC, PAL
*/
void getVideoStandard(CallbackWithOneParam<VideoStandard> callback);

/**
* Set video standard value
*
* @param value VideoStandard enum value to be set
* @param value VideoStandard enum value to be set.
* @param callback the callback when set video standard value.
*/
void setVideoStandard(VideoStandard value, CallbackWithNoParam callback);

/**
* Get the photo format
*
* @return photo format
* @param callback the callback when get the photo format
*/
void getPhotoFormat(CallbackWithOneParam<PhotoFormat> callback);

/**
* Set photo format
*
* @param value PhotoFormat enum value to be set
* @param value PhotoFormat enum value to be set.
* @param callback the callback when set photo format.
*/
void setPhotoFormat(PhotoFormat value, CallbackWithNoParam callback);


/**
* Set photo size
*
* @param value PhotoAspectRatio enum value to be set
* @param value PhotoAspectRatio enum value to be set.
* @param callback the callback when set photo size.
*/
void setAspectRatio(PhotoAspectRatio value, CallbackWithNoParam callback);

/**
* Get current photo size
*
* @return Current photo size
* @param callback the callback when get current photo size
*/
void getAspectRatio(CallbackWithOneParam<PhotoAspectRatio> callback);

/**
* Set camera video resolution
* <p/>
* Note: figure out the current standard first. Resolution for NTSC can not be et in PAL, and vice versa.
*
* @param value AutelCameraVideoResolution enum value
*/
void setVideoResolutionAndFrameRate(VideoResolutionAndFps value, CallbackWithNoParam callback);

/**
* Get current video resolution
*
* @return Set video resolution
* @param callback Set video resolution.
*/
void getVideoResolutionAndFrameRate(CallbackWithOneParam<VideoResolutionAndFps> callback);

/**
* Set value of video encoder
*
* @param encoding VideoEncodeFormat of video
* @param encoding the enum values of the VideoEncodeFormat.
* @param callback the callback when set value of the video encoder.
*/
void setVideoEncoder(VideoEncodeFormat encoding, CallbackWithNoParam callback);

/**
* Get configuration of video encoder
*
* @param callback the callback when get configuration of video encoder.
*/
void getVideoEncoderConfiguration(CallbackWithOneParam<VideoEncoderConfiguration> callback);


/**
* Set rotation of camera video
*
* @param mode the enum values of the rotation of camera video.
* @param callback the callback when set rotation of the camera video.
*/
void setVideoRotation(VideoRotation mode, CallbackWithNoParam callback);

/**
* Get rotation of camera video
*
* @param callback the callback when get rotation of the camera video.
*/
void getVideoRotation(CallbackWithOneParam<VideoRotation> callback);

/**
* 待翻译
*
* @param shutterMode
* @param callback
* Set up camera shutter mode
*
* @param shutterMode the enum values of the shutter mode.
* @param callback the callback when set the camera shutter mode.
*/
void setShutterMode(ShutterMode shutterMode, CallbackWithNoParam callback);

/**
* 待翻译
*
* @param callback
* Gets camera shutter mode
*
* @param callback the callback when get the camera shutter mode
*/
void getShutterMode(CallbackWithOneParam<ShutterMode> callback);

/**
* Set Auto Assist Focus enable or not
*
* @param enable whether enable the Auto Assist Focus or not.
* @param callback the callback when set the Auto Assist Focus
*/
void setAFAssistFocusEnable(boolean enable, CallbackWithNoParam callback);

/**
* Gets Auto Assist Focus enable or not
*
* @param callback the callback when get the Auto Assist Focus
*/
void getAFAssistFocusEnable(CallbackWithOneParam<Boolean> callback);


/**
* Set Manual Assist Focus enable or not
*
* @param enable whether enable the Manual Assist Focus or not.
* @param callback the callback when set the Manual Assist Focus
*/
void setMFAssistFocusEnable(boolean enable, CallbackWithNoParam callback);

/**
* Gets Manual Assist Focus enable or not
*
* @param callback the callback when get the Manual Assist Focus
*/
void getMFAssistFocusEnable(CallbackWithOneParam<Boolean> callback);

/**
* Sets the PIV mode for XT701 camera.
*
* @param mode the enum values of the PIV mode.
* @param callback the callback when set the PIV mode for XT701 camera.
*/
void setPIVMode(PIVMode mode, CallbackWithNoParam callback);

/**
* @param callback the callback when get XB015 camera.
* Returns the PIV mode of XT701 camera.
*
* @param callback the callback when get XT701 camera.
*/
void getPIVMode(CallbackWithOneParam<PIVMode> callback);

/**
* Sets the timelapse interval for the auto PIV mode.
*
* @param interval the enum values of the timelapse interval.
* @param callback the callback when set the timelapse interval for the auto PIV mode.
*/
void setAutoPIVTimelapseInterval(VideoSnapshotTimelapseInterval interval, CallbackWithNoParam callback);

/**
* Switches the camera from the record mode to the previous shoot mode.
*
* @param callback the callback when switch the camera from the record mode to the previous shoot mode.
*/
void switchToPreviousPhotoMode(CallbackWithOneParam<MediaMode> callback);

/** Sets the tracking mode for XT701 camera.
*
* @param enable whether enable the tracking mode for XT701 camera or not.
* @param callback the callback when set the tracking mode for XT701 camera.
*/
void setTrackingModeEnable(boolean enable, CallbackWithNoParam callback);

/**
* Returns the position information of the horizontal line.
*
* @param viewHeight the height of the view.
* @param gimPitch the gimbal pitch angle.
* @param callback the callback when get the position information of the horizontal line.
*/
void getSkylinePositionData(int viewHeight, int gimPitch, CallbackWithOneParam<SkylinePositionData> callback);

/**
* Set video recording format.
*
* @param encoding the enum values of the encoding format.
* @param callback the callback when set the encoding format.
*/
void setVideoEncodeFormat(final VideoEncodeFormat encoding, CallbackWithNoParam callback);

/**
* Gets video recording format.
*
* @param callback the callback when get the video recording format.
*/
void getVideoEncodeFormat(CallbackWithOneParam<VideoEncodeFormat> callback);

/**
* Set current camera storage location.
*
* @param saveLocation the enum values of the SaveLocation
* @param callback the callback when set the current camera storage location.
*/
void setAlbumSaveLocation(final SaveLocation saveLocation, CallbackWithNoParam callback);

/**
* Gets current camera storage location.
*
* @param callback the callback when get the current camera storage location.
*/
void getAlbumLocation(CallbackWithOneParam<SaveLocation> callback);

/**
* Gets flash card status.
*
* @param callback the callback when get the flash card status.
*/
void getFMCStatus(CallbackWithOneParam<FlashCardStatus> callback);

/**
* Format flash card.
*
* @param callback the callback when format flash card.
*/
void formatFlashMemoryCard(CallbackWithNoParam callback);

/**
* Set HDR function enable or not
*
* @param enable whether enable the HDR function or not.
* @param callback the callback when set hdr function.
*/
void setHDREnable(boolean enable, CallbackWithNoParam callback);

/**
* Gets HDR function enable or not
*
* @param callback the callback when get HDR function.
*/
void getHDREnable(CallbackWithOneParam<Boolean> callback);

/**
* Set Defog function enable or not
*
* @param enable whether enable the Defog function or not.
* @param callback the callback when set defog function.
*/
void setDeFogEnable(boolean enable, final CallbackWithNoParam callback);

/**
* Set defog intensity
*
* @param strength the integer between 1 and 10.
* @param callback the callback when set defog intensity.
*/
void setDeFogStrength(int strength, final CallbackWithNoParam callback);

/**
* Gets defog parameters
*
* @param callback the callback when get defog parameters
*/
void getDeFogParams(final CallbackWithOneParam<DeFogParam> callback);

/**
* Set ROI enable or not
*
* @param enable whether enable the ROI function or not.
* @param callback the callback when set ROI.
*/
void setImageRoiEnable(boolean enable, final CallbackWithNoParam callback);

/**
* Set ROI intensity
*
* @param strength the integer between 1 and 10.
* @param callback the callback when set ROI intensity.
*/
void setImageRoiStrength(int strength, final CallbackWithNoParam callback);

/**
* Set ROI area Spot Area
*
* @param x raster No.x in horizontal
* @param y raster No.y in vertical
* @param callback
*/
void setImageRoiArea(int x, int y, final CallbackWithNoParam callback);

/**
* Gets ROI parameters
*
* @param callback the callback when get ROI parameters.
*/
void getImageRoiParams(final CallbackWithOneParam<ImageRoiParam> callback);

/**
* Set MF metering point
*
* @param x raster No.x in horizontal
* @param y raster No.y in vertical
* @param iCompletionCallbackWith
*/
void setFocusMFSpotArea(int x, int y, final CallbackWithNoParam iCompletionCallbackWith);

/**
* Gets MF metering point
*
* @param callbackWithOneParam the callback when get manual focus metering point.
*/
void getFocusMFSpotArea(CallbackWithOneParam<SpotMeteringArea> callbackWithOneParam);


/**
* Set Time-lapse photography interval
*
* @param interval the integer between 2 and 15.
* @param callback the callback when set time-lapse photography interval.
*/
void setMotionDelayShotInterval(int interval, CallbackWithNoParam callback);

/**
* Gets Time-lapse photography interval
*
* @param callback the callback when get time-lapse photography interval.
*/
void getMotionDelayShotInterval(CallbackWithOneParam<Integer> callback);

/**
* Set Time-lapse video length
*
* @param duration the value is video length.
* @param callback the callback when set time-lapse video length.
*/
void setMotionDelayShotDuration(int duration, CallbackWithNoParam callback);

/**
* Gets Time-lapse video length
*
* @param callback the callback when get time-lapse video length.
*/
void getMotionDelayShotDuration(CallbackWithOneParam<Integer> callback);

/**
* Set Time-lapse save or not and photo format.
*
* @param rawFormat the enum values of the RawFormat
* @param callback the callback when set time-lapse save or not and photo format
*/
void setMotionDelayShotKeepPhoto(RawFormat rawFormat, CallbackWithNoParam callback);

/**
* Gets Time-lapse photo format info
*
* @param callback the callback when get the time-lapse photo format info.
*/
void getMotionDelayShotKeepPhoto(CallbackWithOneParam<MotionPhotoInfo> callback);

/**
* Converts to ReactiveX interface.
*
* @return ReactiveX interface.
*/
RxAutelXT701 toRx();
}

字段表:PhotoBurstCount

/**
* This enum is related to the burst mode, choosing different photo counts for each burst shooting.
* 这个枚举与连拍模式有关,为每次连拍选择不同的照片计数。
*/
public enum PhotoBurstCount {
/**
* The numbers of photos taken continuously for each shooting is 3.
* 每次连续拍摄的照片数量为3张。
*/
BURST_3("3 photos once","3"),
/**
* The numbers of photos taken continuously for each shooting is 5.
* 每次连续拍摄的照片数量为5张。
*/
BURST_5("5 photos once","5"),
/**
* The numbers of photos taken continuously for each shooting is 7.
* 每次连续拍摄的照片数量为7张。
*/
BURST_7("7 photos once","7"),
/**
* The numbers of photos taken continuously for each shooting is 10.
* 每次连续拍摄的照片数量为10张。
*/
BURST_10("10 photos once","10"),
/**
* The numbers of photos taken continuously for each shooting is 14.
* 每次连续拍摄的照片数量为14张。
*/
BURST_14("14 photos once","14"),
/**
* The numbers of photos taken continuously for each shooting is unknown.
* 每次连续拍摄的照片数量未知。
*/
UNKNOWN("unknown","unknown");
}

字段表:XT701CameraInfo

/**
* The current information of the camera.
* 摄像机的当前信息。
*/

public interface XT701CameraInfo {
/**
* Gets the current temperature of the camera.
* 获取摄像机的当前温度。
* @return the current temperature of the camera.摄像机的当前温度。
*/
int getTemperature();

/**
* Gets the current exposure compensation of the camera.
* 获取摄像机的当前曝光补偿。
* @return the current exposure compensation of the camera.摄像机的当前曝光补偿。
*/
ExposureCompensation getExposureCompensation();

/**
* Gets the current ISO of the camera.
* 获取摄像机的当前ISO。
* @return the current ISO of the camera.摄像机的当前ISO。
*/
CameraISO getISO();

/**
* Gets the current shutter speed of the camera.
* 获取摄像机的当前快门速度。
* @return the current shutter speed of the camera.摄像机的当前快门速度。
*/
ShutterSpeed getShutterSpeed();

/**
* Gets the current recording time.
* 获取当前录制时长。
* @return the current recording time.当前录制时长。
*/
long getCurrentRecordTime();

/**
* Gets the total time of the video that can be recorded.
* 获取可录制的视频的总时长。
* @return the total time of the video that can be recorded.可录制的视频的总时长。
*/
long getTotalTimeCanRecord();

/**
* Gets the number of the photos that can be taken.
* 获取可拍摄的照片数量。
* @return the number of the photos that can be taken.可拍摄的照片数量。
*/
int getPhotoSumCanTake();

/**
* Gets the zoom scale of the camera.
* 获取摄像机的缩放比例。
* @return the zoom scale of the camera.摄像机的缩放比例。
*/

int getZoomScale();

/**
* Gets aperture value
* 获取光圈值
* @return aperture value 光圈值
*/
CameraAperture getCameraAperture();

/**
* Gets on-board flash card status
* 获取板载闪存卡状态
* @return on-board flash card status 板载闪存卡状态
*/
MMCState getMMCState();

/**
* Gets camera SD card status
* 获取摄像机SD卡状态
* @return camera SD card status 摄像机SD卡状态
*/
SDCardState getSDCardState();

/**
* Gets the current work status
* 获取当前工作状态
* @return the current work status 当前工作状态
*/
WorkState getWorkState();

/**
* Gets the total capacity of the on-board flash card
* 获取板载闪存卡的总容量
* @return the total capacity of the on-board flash card 板载闪存卡的总容量
*/
long getMMCTotalSpace();

/**
* Gets the available capacity of the on-board flash card
* 获取板载闪存卡的可用容量
* @return the available capacity of the on-board flash card 板载闪存卡的可用容量
*/
long getMMCFreeSpace();

/**
* Gets the available capacity of the camera SD card
* 获取摄像机SD卡的可用容量
* @return the available capacity of the camera SD card 摄像机SD卡的可用容量
*/
long getSDcardFreeSpace();

/**
* Gets camera vertical view angle
* 获取摄像机垂直视角
* @return camera vertical view angle 摄像机垂直视角
*/
float getVerticalFOV();

/**
* Gets camera horizontal view angle
* 获取摄像机水平视角
* @return camera horizontal view angle 摄像机水平视角
*/
float getHorizontalFOV();

/**
* Gets camera minimum photo interval
* 获取摄像机最小拍照间隔
* @return camera minimum photo interval 摄像机最小拍照间隔
*/
int getPhotoIntervalMin();

/**
* 待翻译 获取像素点大小
*
* @return 像素点大小
*/
float getPixelSize();

/**
* 待翻译 获取相机焦距
*
* @return 相机焦距
*/
float getFocalLength();

/**
* 相机模式
*
* @return
*/
MediaMode getMediaMode();

/**
* 获取相机加密状态
* @return
*/
int getCipherState();

/**
* 相机当前解密
* @return
*/
int getCipherCurrent();

/**
* 相机解密总数
* @return
*/
int getCipherTotal();
}

字段表:MMCState

/**
* The camera MMCState card status.
* 摄像机MMCStatus卡状态。
*/
public enum MMCState {
/**
* The SD card is ready.
* SD卡准备好。
*/
CARD_READY("Ready", null),
/**
* The SD card has an error.
* SD卡有错误。
*/
CARD_ERROR("Error", AutelError.CAMERA_SDCARD_STATE_CARD_ERROR),
/**
* The SD card has been full.
* SD卡已满。
*/
CARD_FULL("Full", AutelError.CAMERA_SDCARD_STATE_CARD_FULL),
/**
* Unknown file system.
* 未知的文件系统。
*/
UNKNOWN_FILE_SYSTEM_FAT("UnknownFileSystem", AutelError.CAMERA_SDCARD_STATE_UNKNOWN_FS_FAT),
/**
* LOOP_RECORD_LACK_OF_SPACE
* 循环录制缺少空间
*/
LOOP_RECORD_LACK_OF_SPACE("LOOP_RECORD_LACK_OF_SPACE", AutelError.CAMERA_SDCARD_STATE_CARD_PROTECT),

/**
* The camera SD card status is unknown.
* 相机SD卡状态未知。
*/
UNKNOWN("unknown",AutelError.COMMAND_FAILED);
}

接口:XB008ParameterRangeManager

/**
* The manager of the XB008 camera parameter range
*/

public interface XB008ParameterRangeManager {
/**
* Get the range of the camera ISO
*/
CameraISO[] getCameraISO();

/**
* Get the range of the video resolution and fps
*/
VideoResolutionAndFps[] getVideoResolutionAndFps();

/**
* Get the range of the photo aspect ratio
*/
PhotoAspectRatio[] getPhotoAspectRatio();

/**
* Get the range of the white balance type
*/
WhiteBalanceType[] getCameraWhiteBalanceType();

/**
* Get the range of the camera exposure mode
*/
ExposureMode[] getCameraExposureMode();

/**
* Get the range of the camera shutter speed
*/
List<ShutterSpeed> getCameraShutterSpeed();

/**
* Get the range of the photo timelapse interval
*/
List<PhotoTimelapseInterval> getPhotoTimelapseInterval();

/**
* Get the raster No.x range of the spot metering area. No.x is in horizontal, ranges from 1 to 9.
*/
RangePair<Integer> getSpotMeteringAreaNoX();

/**
* Get the raster No.y range of the spot metering area. No.y is in vertical, ranges from 1 to 5.
*/
RangePair<Integer> getSpotMeteringAreaNoY();

/**
* Get the range of the contrast style, ranges from -3 to 3
*/
RangePair<Integer> getPhotoStyleContrast();

/**
* Get the range of the saturation style, ranges from -3 to 3
*/
RangePair<Integer> getPhotoStyleSaturation();

/**
* Get the range of the sharpness style, ranges from -3 to 3
*/
RangePair<Integer> getPhotoStyleSharpness();

/**
* Get the range of the digital zoom scale, ranges from 100 to 200
*/
RangePair<Integer> getDigitalZoomScale();

/**
* Get the range of the focus distance, ranges from 10 to 10000
*/
RangePair<Integer> getFocusDistance();

/**
* Get the raster No.x range of the photo auto focus meter, ranges from 1 to 100
*/
RangePair<Integer> getAutoFocusMeterNoX();

/**
* Get the raster No.y range of the photo auto focus meter, ranges from 1 to 100
*/
RangePair<Integer> getAutoFocusMeterNoY();

/**
* Get the range of the color temperature, which uses the white balance custom mode, ranges from 2000 to 10000
*/
RangePair<Integer> getColorTemperature();


/**
* Get the range of the photo burst count
*/
PhotoBurstCount[] getPhotoBurstCount();
}

接口:XT701ParameterRangeManager

/**
* The manager of XB016 camera parameter range.
* XB016摄像机参数范围的管理器。
*/

public interface XT701ParameterRangeManager extends XB008ParameterRangeManager {
/**
* Gets current camera aperture range
* 获取当前摄像机的光圈范围
* @return current camera aperture range 当前摄像机的光圈范围
*/
CameraAperture[] getCameraAperture();
}

字段表:LensFocusStatus


/**
* The focusing status of the camera's lens.
* 摄像机镜头对焦状态。
*/
public enum LensFocusStatus {

/**
* The lens is focusing to the target.
* 镜头正在对焦目标。
*/
FUZZY("Fuzzy"),
/**
* The lens succeeds to focus on the target.
* 镜头对焦目标成功。
*/
CLEAR("Clear"),
/**
* The lens focus status is unknown.
* 镜头对焦状态未知。
*/
UNKNOWN("unknown");
}

字段表:PhotoBurstCount

/**
* This enum is related to the burst mode, choosing different photo counts for each burst shooting.
* 这个枚举与连拍模式有关,为每次连拍选择不同的照片计数。
*/
public enum PhotoBurstCount {
/**
* The numbers of photos taken continuously for each shooting is 3.
* 每次连续拍摄的照片数量为3张。
*/
BURST_3("3 photos once","3"),
/**
* The numbers of photos taken continuously for each shooting is 5.
* 每次连续拍摄的照片数量为5张。
*/
BURST_5("5 photos once","5"),
/**
* The numbers of photos taken continuously for each shooting is 7.
* 每次连续拍摄的照片数量为7张。
*/
BURST_7("7 photos once","7"),
/**
* The numbers of photos taken continuously for each shooting is 10.
* 每次连续拍摄的照片数量为10张。
*/
BURST_10("10 photos once","10"),
/**
* The numbers of photos taken continuously for each shooting is 14.
* 每次连续拍摄的照片数量为14张。
*/
BURST_14("14 photos once","14"),
/**
* The numbers of photos taken continuously for each shooting is unknown.
* 每次连续拍摄的照片数量未知。
*/
UNKNOWN("unknown","unknown");
}

字段表:ImageRoiParam

/**
* This port is to provide ROI parameter.
* 此端口用于提供ROI参数。
*/
public interface ImageRoiParam {
/**
* Gets ROI function whether enable.
* 获取ROI功能是否启用。
* @return ROI function whether enable.ROI功能是否启用。
*/
boolean isEnable();
/**
* Gets ROI intensity info.
* 获取ROI强度信息。
* @return ROI intensity info.ROI强度信息。
*/
int getStrength();
}

字段表:PhotoAspectRatio

/**
* The camera's photo aspect ratios, where the first value is the width and the second value is the height.
* 摄像机照片宽高比,其中第一个值是宽度,第二个值是高度。
*/
public enum PhotoAspectRatio {

/**
* The camera's photo aspect ratio is 16:9.
* 摄像机照片宽高比为16:9。
*
*/
Aspect_16_9("4000*2250 (16:9)", "5376x3024", "4000x2250", "5472x3078", "7680x4320", "5472x3648", "7680x4320"),

/**
* The camera's photo aspect ratio is 4:3.
* 摄像机照片宽高比为4:3。
*/
Aspect_4_3("4000*3000 (4:3)", "4864x3648", "4000x3000", "4864x3648", "8000x6000", "", "8000x6000"),

/**
* The camera's photo aspect ratio is 4:3.
* 摄像机照片宽高比为4:3。
*/
Aspect_4_3_xt("", "", "", "", "4000x3000", "", "4000x3000"),

/**
* The camera's photo aspect ratio is 3:2.
* 摄像机照片宽高比为3:2。
*/
Aspect_3_2("", "5376x3584", "", "5472x3648", "", "5472x3076", ""),

/**
* Photo ratio is 16:9, works in HDR mode.
* 照片宽高比为16:9,拍于HDR模式。
*/
Aspect_16_9_HDR("", "", "", "", "3840x2160", "3840x2160", "3840x2160"),

/**
* Photo ratio is 4:3, works in HDR mode.
*/
Aspect_4_3_HDR("", "", "", "", "4096x3072", "4096x3072", "4096x3072"),

/**
* Photo ratio is 4:3, works in HDR mode.
*/
Aspect_4_3_HHDR("", "", "", "", "8192x6144", "8192x6144", "8192x6144"),

//xt701/xt706 Intelligent flight
/**
* Photo size is 2720x1528.
* 照片尺寸为2720x1528。
*/
Aspect_2720_1528("", "", "", "", "2720x1528", "2720x1528", "2720x1528"),

//for xt706 picInPic xt701/xt706 Intelligent flight
/**
* The photo size is 1920x1080, works under PIP mode and xt701/xt706 intelligent flight mode.
* 照片尺寸为1920x1080,拍于PIP模式和xt701/xt706智能飞行模式。
*/
Aspect_1920_1080("", "", "", "", "1920x1080", "1920x1080", "1920x1080"),

//for xt706 picInPic
/**
* The photo size is 1280x720, works under xt706 PIP mode.
* 照片尺寸为1280x720,拍于xt706 PIP模式。
*/
Aspect_1280_720("", "", "", "", "", "", "1280x720"),

/**
* The photo size is 640x512, works under xt706 IR mode.
* 照片尺寸为640x512,拍于xt706 IR模式。
*/
Aspect_640_512("", "", "", "", "", "", "640x512"),

/**
* The camera's photo aspect ratio is unknown.
* 摄像机照片宽高比未知。
*/
UNKNOWN("unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown");
}

字段表:RawFormat

/**
* Raw format, time-lapse enabled
* RAW格式,启用延时
*/
public enum RawFormat {
/**
* The camera's photo storage format is RAW.
* 摄像机照片存储格式是RAW。
*/
RAW("DNG"),
/**
* The camera's photo storage format is JPEG.
* 摄像机照片存储格式是JPEG。
*/
JPEG("JPG"),
/**
* The camera's photo storage format is NONE.
* 摄像机照片存储格式是NONE。
*/
NONE("NONE"),

/**
* The camera's photo storage format is unknown.
* 摄像机照片存储格式未知
*/
UNKNOWN("unknown");
}

字段表:MotionPhotoInfo

/**
* This port is to provide time-lapse photo parameter.
* 此端口用于提供延时照片参数。
*/
public interface MotionPhotoInfo {
/**
* Whether save Time-lapse original photo
* 是否保存延时原始照片
* @return true-保存原始照片,false- 不保存原始图片
*/
boolean isEnable();

/**
* Gets original time-lapse photo format
* 获取原始延时照片格式
* @return Original time-lapse photo format原始延时照片格式
*/
RawFormat getRawFormat();
}

字段表:DeFogParam

/**
* This port is to provide defog info.
* 此端口提供透雾信息。
*/
public interface DeFogParam {
/**
* Gets defog function enable or not?
* 获取透雾功能是否启用?
* @return defog function enable or not透雾功能是否启用
*/
boolean isEnable();
/**
* Gets defog intensity.
* 获取透雾强度。
* @return defog intensity透雾强度
*/
int getStrength();
}

字段表:LensFocusMode

/**
* The camera focus mode.
* 摄像机对焦模式。
*/
public enum LensFocusMode {
/**
* The camera focus mode is auto.
* 摄像机对焦模式为自动。
*/
AUTO_FOCUS("AF"),

/**
* Auto focus continuous mode
* 自动对焦连续模式
*/
AUTO_FOCUS_CONTINUOUS("AF_C"),

/**
* The camera focus mode is manual.
* 摄像机对焦模式为手动。
*/
MANUAL_FOCUS("MF"),

/**
* The camera focus mode is unknown.
* 摄像机对焦模式未知。
*/
UNKNOWN("unknown");
}

字段表:PIVMode

/**
* The PIV mode of the camera.
* 摄像机的PIV模式。
*/

public enum PIVMode {
/**
* The PIV mode is manual.
* PIV模式为手动。
*/
Manual,
/**
* The PIV mode is auto.
* PIV模式为自动。
*/
Auto,
/**
* The PIV mode is unknown.
* PIV模式未知。
*/
Unknown
}

字段表:PhotoTimelapseInterval

/**
* The time interval between taking two photos.
* 拍摄两张照片之间的时间间隔。
*/
public enum PhotoTimelapseInterval {
/**
* The time interval between taking two photos is 2 seconds.
* 拍摄两张照片之间的时间间隔是2秒。
*/
SECOND_2("2sec", "2"),
/**
* The time interval between taking two photos is 5 seconds.
* 拍摄两张照片之间的时间间隔是5秒。
*/
SECOND_5("5sec", "5"),
/**
* The time interval between taking two photos is 7 seconds.
* 拍摄两张照片之间的时间间隔是7秒。
*/
SECOND_7("7sec", "7"),
/**
* The time interval between taking two photos is 10 seconds.
* 拍摄两张照片之间的时间间隔是10秒。
*/
SECOND_10("10sec", "10"),
/**
* The time interval between taking two photos is 20 seconds.
* 拍摄两张照片之间的时间间隔是20秒。
*/
SECOND_20("20sec", "20"),
/**
* The time interval between taking two photos is 30 seconds.
* 拍摄两张照片之间的时间间隔是30秒。
*/
SECOND_30("30sec", "30"),
/**
* The time interval between taking two photos is 60 seconds.
* 拍摄两张照片之间的时间间隔是60秒。
*/
SECOND_60("60sec", "60"),
/**
* The time interval between taking two photos is unknown.
* 拍摄两张照片之间的时间间隔未知。
*/
UNKNOWN("unknown", "unknown");
}

字段表:VideoRotation

/**
* The angle of the video rotation.
* 视频旋转角度。
*/
public enum VideoRotation {
/**
* The video rotation is 0°.
* 视频旋转角度为0°。
*/
ROTATION_0(0),
/**
* The video rotation is 90°.
* 视频旋转角度为90°。
*/
ROTATION_90(90),
/**
* The video rotation is 180°.
* 视频旋转角度为180°。
*/
ROTATION_180(180),
/**
* The video rotation is 270°.
* 视频旋转角度为270°。
*/
ROTATION_270(270),
/**
* The video rotation is unknown.
* 视频旋转角度未知。
*/
UNKNOWN(-1);
}

字段表:ShutterMode

/**
* The camera shutter mode options.
* 摄像机快门模式选项。
*/
public enum ShutterMode {
MECHANICAL("Mechanical"), ELECTRONIC("Electronic"), UNKNOWN("Unknown");
}

接口:VideoEncoderConfiguration

/**
* The configuration of the video encoder.
* 视频编码器的配置。
*/
public interface VideoEncoderConfiguration {
/**
* Gets the encoding format of the video.
* 获取视频的编码格式。
* @return the encoding format of the video.视频的编码格式。
*/
VideoEncodeFormat getEncoding();

/**
* Gets the video resolutions and associated frames per second (Fps) value.
* 获取视频分辨率和关联的帧率(Fps)值。
* @return the video resolutions and associated frames per second (Fps) value.视频分辨率和关联的帧率(Fps)值。
*/
VideoResolutionAndFps getVideoResolutionAndFps();

/**
* Gets the quality of the video.
* 获取视频的质量。
* @return the quality of the video.视频的质量。
*/
int getQuality();

/**
* Gets the interval time of the I frame.
* 获取I帧的间隔时间。
* @return the interval time of the I frame.I帧的间隔时间。
*/
int getIntervalOfIFrame();

/**
* Gets the bitrate value.
* 获取比特率值。
* @return the bitrate value.比特率值。
*/
int getBitrate();

/**
* Gets the bitrate type.
* 获取比特率类型。
* @return the bitrate type.比特率类型。
*/
VideoBitrateType getBitrateType();

/**
* Gets the encoding type.
* 获取编码类型。
* @return the encoding type.编码类型。
*/
VideoEncodeType getEncodeType();
}
字段表1:VideoBitrateType
/**
* The list of the video bitrate type.
* 视频比特率类型的列表。
*/

public enum VideoBitrateType {
/**
* The video bitrate type is VBR.
* 视频比特率类型为VBR。
*/
VBR("VBR"),
/**
* The video bitrate type is CBR.
* 视频比特率类型为CBR。
*/
CBR("CBR"),
/**
* The video bitrate type is unknown.
* 视频比特率类型未知
*/
UNKNOWN("unknown");
}
字段表2:VideoEncodeType
/**
* The type list of the video encoding.
* 视频编码的类型列表。
*/

public enum VideoEncodeType {
/**
* The video encoding type is baseLine.
* 视频编码类型为baseLine。
*/
BASELINE("BaseLine"),
/**
* The video encoding type is main.
* 视频编码类型为main。
*/
MAIN("Main"),
/**
* The video encoding type is high.
* 视频编码类型为high。
*/
HIGH("High"),
/**
* The video encoding type is unknown.
* 视频编码类型为未知。
*/
UNKNOWN("unknown");
}
字段表3:VideoEncodeFormat
/**
* The video encode format.
* 视频编码格式。
*/
public enum VideoEncodeFormat {
/**
* The video encode format is H264.
* 视频编码格式为H264。
*/
H264("H264"),
/**
* The video encode format is H265.
* 视频编码格式为H265。
*/
H265("H265"),
/**
* The video encode format is unknown.
* 视频编码格式未知。
*/
UNKNOWN("Unknown");
}
字段表4:VideoResolutionAndFps
/**
* Defines the video resolution and frame rate as a type.
* 将视频分辨率和帧率定义为一种类型。
*/
public class VideoResolutionAndFps {
/**
* The video resolution.
* 视频分辨率。
*/
public VideoResolution resolution = VideoResolution.UNKNOWN;
/**
* The video frame rate.
* 视频帧率。
*/
public VideoFps fps = VideoFps.UNKNOWN;

/**
* The Constructor of the VideoResolutionAndFps.
* 视频分辨率和帧率的构造器。
*/
public VideoResolutionAndFps() {
}

/**
* The Constructor of the VideoResolutionAndFps.
* 视频分辨率和帧率的构造器。
* @param resolution the video resolution.视频分辨率。
* @param fps the video frame rate.视频帧率。
*/
public VideoResolutionAndFps(VideoResolution resolution, VideoFps fps) {
this.resolution = resolution;
this.fps = fps;
}

public String toString() {
if (resolution != null && fps != null) {
return resolution.value() + fps.value();
}
return "";
}

/**
* Creates a VideoResolutionAndFps enum from a VideoResolutionAndFps string.
* 从视频分辨率和帧率字符串创建视频分辨率和帧率(VideoResolutionAndFps)枚举。
* @param resolutionFps a string indicates a VideoResolutionAndFps enum.指示VideoResolutionAndFps枚举的字符串。
* @return a VideoResolutionAndFps enum from a VideoResolutionAndFps string.视频分辨率和帧率字符串中的VideoResolutionAndFps枚举。
*/
public static VideoResolutionAndFps create(String resolutionFps) {
VideoResolutionAndFps videoResolutionAndFps = new VideoResolutionAndFps();
String result = resolutionFps;
int index = result.indexOf("p");
if (-1 != index) {
String resolution = result.substring(0, index);
String fps = result.substring(index);
videoResolutionAndFps.resolution = VideoResolution.find(resolution);
videoResolutionAndFps.fps = VideoFps.find(fps);
}

return videoResolutionAndFps;
}
}

字段表:FlashCardStatus

/**
* This port is to provide on-board flash card parameter.
* 该端口提供板载闪存卡参数。
*/
public interface FlashCardStatus {
/**
* Gets on-board flash card status.
* 获取板载闪存卡状态。
* @return on-board flash card status板载闪存卡状态
*/
MMCState getFlashCardStatus();

/**
* Gets on-board flash card total capacity.
* 获取板载闪存卡总容量。
* @return on-board flash card total capacity.板载闪存卡总容量。
*/
long getTotalSpace();

/**
* Gets on-board flash card remaining capacity.
* 获取板载闪存卡剩余容量。
* @return on-board flash card remaining capacity板载闪存卡剩余容量
*/
long getFreeSpace();

/**
* Gets on-board flash card recording duration.
* 获取板载闪存卡录制时长。
* @return on-board flash card recording duration板载闪存卡录制时长
*/
long getCurrentRecordTime();

/**
* Gets on-board flash card remaining recording duration.
* 获取板载闪存卡剩余录制时长。
* @return on-board flash card remaining recording duration.板载闪存卡剩余录制时长。
*/
int getRemainRecordTime();
/**
* Gets on-board flash card remaining photo numbers.
* 获取板载闪存卡剩余照片数量。
* @return on-board flash card remaining photo numbers板载闪存卡剩余照片数量
*/
int getRemainCaptureNum();
}

接口:RxAutelXT701

/**
* This interface is used to provide XT701 camera function.
* 此接口用于提供XT701摄像机功能。
*/
public interface RxAutelXT701 extends RxAutelBaseCamera {
/**
* Set histogram switch value
* 设置直方图开关值
* @param callback listener cancelled when callback is null.回调为空时,监听器被取消。
*/
void setHistogramListener(CallbackWithOneParam<int[]> callback);

/**
* Set long listener for camera auto focus
* 设置摄像机自动对焦监听器
* @param callback long listener cancelled when callback is null.回调为空时,监听器被取消。
*/
void setAutoFocusStateListener(CallbackWithTwoParams<LensFocusStatus, List<SpotMeteringArea>> callback);

/**
* Set camera spot metering
* 设置摄像机点测光
* @param x raster No.x in horizontal, ranges from 1 to 5 光栅水平No.x,范围从1到5
* @param y raster No.y in vertical, ranges from 1 to 9 光栅垂直No.y,范围从1到9
* <p/>
* Note: not available when CameraAutoExposureLockState is in LOCK or DISABLE.
* 注意:当摄像机自动曝光锁状态处于锁定或禁用状态时不可用。
* <p/>
* Note: available when CameraAutoExposureLockState is UNLOCK.
* 注意:当摄像机自动曝光锁状态处于解锁时可用。
*/
Observable<Boolean> setSpotMeteringArea(int x, int y);

/**
* Set camera Auto Exposure lock
* 设置摄像机自动曝光锁
* <p/>
* Note:
* 注意:
* <p/>
* Cannot set in Manual Mode
* 手动模式下无法设置
* <p/>
* Only LOCK and UNLOCK are supported in other modes
* 其他模式下只支持锁定和解锁
* @param lockState CameraAutoExposureLockState enum value 摄像机自动曝光锁状态枚举值
*/
Observable<Boolean> setAutoExposureLockState(AutoExposureLockState lockState);

/**
* Set camera exposure value
* 设置摄像机曝光值
* <p/>
* Note: this is only available in Auto mode.
* 注意:只在自动模式下可用。
*/
Observable<Boolean> setExposure(ExposureCompensation exposure);

/**
* Set camera ISO value
* 设置摄像机ISO值
* <p/>
* Note: this set is only available in Manual mode.
* 注意:只在手动模式下可用。
* @param value ISO value to be set 要设置的ISO值
*/
Observable<Boolean> setISO(CameraISO value);

/**
* Set camera shutter value
* 设置摄像机快门值
* <p/>
* Note: this setting is only available in Manual mode.
* 注意:只在手动模式下可用。
* @param value Shutter value to be set 要设置的快门值
*/
Observable<Boolean> setShutter(ShutterSpeed value);

/**
* Get photo color style
* 获取照片色彩风格
* @return photo color style 照片色彩风格
*/
Observable<ColorStyle> getColorStyle();

/**
* Set camera white balance value
* 设置摄像机白平衡值
* @param value CameraWhiteBalance enum value to be set 要设置的摄像机白平衡枚举值
*/
Observable<Boolean> setWhiteBalance(WhiteBalance value);

/**
* Set camera color style
* 设置摄像机色彩风格
* @param value CameraColorStyle enum value to be set 要设置的摄像机色彩风格枚举值
*/
Observable<Boolean> setColorStyle(ColorStyle value);

/**
* Set 3d noise reduction switch value
* 设置3d降噪开关值
* @param enable whether enable 3d noise reduction switch value.3d降噪开关值是否启用。
*/
Observable<Boolean> set3DNoiseReductionEnable(boolean enable);

/**
* Set anti-flicker value
* 设置抗闪烁值
* <p/>
* Note: this setting is only available in Auto mode.
* 注意:只在自动模式下可用。
*
* @param value CameraAntiFlicker enum value to be set
*/
Observable<Boolean> setAntiFlicker(AntiFlicker value);

/**
* Get auto exposure lock state
* 获取自动曝光锁状态
* @return auto exposure lock state 自动曝光锁状态
*/
Observable<AutoExposureLockState> getAutoExposureLockState();

/**
* Get spot metering value
* 获取点测光值
* @return spot metering value 点测光值
*/
Observable<SpotMeteringArea> getSpotMeteringArea();

/**
* Get anti-flicker status
* 获取抗闪烁状态
* @return anti-flicker status 抗闪烁状态
*/
Observable<AntiFlicker> getAntiFlicker();

/**
* Get white balance value
* 获取白平衡值
* @return white balance value 白平衡值
*/
Observable<WhiteBalance> getWhiteBalance();

/**
* Get exposure value
* 获取曝光值
* @return exposure value 曝光值
*/
Observable<ExposureCompensation> getExposure();

/**
* Get shutter setting value
* 获取快门设置值
* @return shutter setting value 快门设置值
*/
Observable<ShutterSpeed> getShutter();


/**
* Get camera ISO value
* 获取摄像机ISO值
* @return camera ISO value 摄像机ISO值
*/
Observable<CameraISO> getISO();

/**
* Get exposure mode of camera
* 获取摄像机曝光模式
* @return exposure mode of camera 摄像机曝光模式
*/
Observable<ExposureMode> getExposureMode();


/**
* Set photo style
* 设置照片风格
* @param value PhotoStyleType enum value to be set 要设置的照片风格枚举值
*/
Observable<Boolean> setPhotoStyle(PhotoStyleType value);

/**
* Set custom photo style value
* 设置摄像机照片风格值
* @param contrast ranges from -3 to 3 对比度,范围从-3到3
* @param saturation ranges from -3 to 3 饱和度,范围从-3到3
* @param sharpness ranges from -3 to 3 锐度,范围从-3到3
*/
Observable<Boolean> setPhotoStyle(@IntRange(from = -3, to = 3) int contrast, @IntRange(from = -3, to = 3) int saturation, @IntRange(from = -3, to = 3) int sharpness);


/**
* Get histogram switch status

* 获取直方图开关状态
* @return histogram switch status.直方图开关状态。

*/
Observable<Boolean> isHistogramStatusEnable();

/**
* Set video subtitle switch value

* 设置视频字幕开关值
* @param enable whether enable video subtitle switch value.视频字幕开关值是否启用。

*/
Observable<Boolean> setVideoSubtitleEnable(boolean enable);

/**
* Get video subtitle switch status

* 获取视频字幕开关状态
* @return video subtitle switch status 视频字幕开关状态

*/
Observable<Boolean> isSubtitleEnable();

/**
* Get photo style
* 获取照片风格
* @return photo style 照片风格
*/
Observable<PhotoStyle> getPhotoStyle();

// /**
// * Set camera aperture value
// * <p/>
// * Note:
// * <p/>
// * 1. This is only available in Manual and AperturePriority modes.
// *
// * @param value aperture value to be set
// */
// Observable<Boolean> setCameraAperture(CameraAperture value);
//
// /**
// * Obtain aperture value
// *
// * @return aperture value
// */
// Observable<CameraAperture> getCameraAperture();



/**
* Obtain focus mode

* 获取对焦模式
* @return focus mode 对焦模式

*/
Observable<LensFocusMode> getFocusMode();

/**
* Set camera focus mode
* 设置摄像机对焦模式
* @param param param CameraLensFocusMode enum value to be set 要设置的摄像机对焦模式枚举值

*/
Observable<Boolean> setFocusMode(LensFocusMode param);

/**
* Set camera mode

* 设置摄像机模式
* @param param the enum values of the ExposureMode 曝光模式的枚举值

*/
Observable<Boolean> setExposureMode(ExposureMode param);


/**
* Get camera focus distance

* 获取摄像机物距
* @return camera focus distance. 摄像机物距。

*/
Observable<Integer> getFocusDistance();

/**
* <p/>
* Set camera focus position, , ranges from 10 cm to 10000 cm (Only valid MF mode).
* 设置摄像机物距位置,范围从10cm到10000cm(仅限有效的MF模式)。
* <p/>
* Unit: cm
* 单位:cm
* <p/>
* Note: this is available in CameraLensFocusMode MF mode.
* 注意:在摄像机物距MF模式下可用。

*/
Observable<Boolean> setFocusDistance(int objectDistance);

// /**
// * Get custom color temperature of white balance, range from 2000 to 10000,100 per time
// */
// Observable<Boolean> getColorTemperature(CallbackWithOneParam<Integer> callback);

/**
* Get digital zoom scale

* 获取数码变焦比例
* @return digital zoom scale 数码变焦比例

*/
Observable<Integer> getDigitalZoomScale();

/**
* Set camera Auto Focus meter
* 设置摄像机自动对焦仪
* @param x raster No.x in horizontal lines, ranges from 1 to 100 光栅水平线No.x,范围从1到100
* @param y raster No.y in vertical lines, ranges from 1 to 100 光栅垂直线No.y,范围从1到100
* Note: this is available in AF mode
* 注意:在AF模式下可用

*/
Observable<Boolean> setPhotoAutoFocusMeter(int x, int y);

/**
* Set camera Manual Focus meter
* 设置摄像机手动对焦仪
* @param x raster No.x in horizontal lines, ranges from 1 to 100 光栅水平线No.x,范围从1到100
* @param y raster No.y in vertical lines, ranges from 1 to 100 光栅垂直线No.y,范围从1到100
* Note: this is available in AF mode
* 注意:在AF模式下可用
*/
Observable<Boolean> setManualFocusMeter(int x, int y);

/**
* Request the camera to take photos
* 请求摄像机拍照
* <p/>
* Focus before shooting(average focus)
* 拍摄前对焦(平均焦距)
* <p/>
* Note:
* 注意:
* <p/>
* 1. See if the camera is in photo shooting mode
* 1. 查看摄像机是否处于拍照模式
* <p/>
* 2. See if the camera is idle in the current mode
* 2. 查看摄像机在当前模式下是否空闲
* <p/>
* 3. See if the SD card is available
* 3. 查看SD卡是否可用

*/
Observable<Boolean> startTakePhotoWithFocus();

/**
* Set AutelCamera burst photo count value
* 设置道通摄像机连拍照片计数值
* @param value PhotoBurstCount enum value to be set 要设置的连拍照片计数枚举值

*/
Observable<Boolean> setPhotoBurstCount(PhotoBurstCount value);

/**
* Set time-lapse interval value
* 设置延时间隔值
* @param value PhotoTimelapseInterval enum value to be set 要设置的照片延时间隔枚举值

*/
Observable<Boolean> setPhotoTimelapseInterval(PhotoTimelapseInterval value);

/**
* Set camera AEB count
* 设置摄像机AEB计数
* @param value PhotoAEBCount enum value to be set 要设置的照片AEB计数

*/
Observable<Boolean> setPhotoAEBCount(PhotoAEBCount value);

/**
* Get AEB photo count
* 获取摄像机AEB计数

* @return AEB photo count
*/
Observable<PhotoAEBCount> getPhotoAEBCount();

/**
* Get burst photo count
* 获取连拍照片计数
* @return burst photo count 连拍照片计数

*/
Observable<PhotoBurstCount> getPhotoBurstCount();

/**
* Get interval for timelapse mode
* 获取定时拍模式间隔
* @return interval for timelapse 定时拍模式间隔

*/
Observable<PhotoTimelapseInterval> getPhotoTimelapseInterval();

/**
* Get the number of videos
* 获取视频数量
* @return number of videos 视频数量

*/
Observable<VideoSum> getVideoSum();

/**
* Get the number of photos can be taken
* 获取可拍摄照片数量
* @return number of photos can be taken可拍摄照片数量

*/
Observable<Integer> getLeftPhotoSum();

/**
* Get current recording leftTime
* 获取当前录制剩余时长
* @return get current record time (seconds)当前录制剩余时长

*/
Observable<Integer> getCurrentRecordTime();

/**
* Get video format
* 获取视频格式
* @return video format 视频格式

*/
Observable<VideoFormat> getVideoFormat();

/**
* Set camera video format
* 设置摄像机视频格式
* @param value VideoFormat enum value to be set 要设置的视频格式枚举

*/
Observable<Boolean> setVideoFormat(VideoFormat value);

/**
* Get video standard
* 获取视频制式
* @return camera standard: NTSC, PAL 摄像机制式:NTSC, PAL

*/
Observable<VideoStandard> getVideoStandard();

/**
* Set video standard value
* 设置视频制式值
* @param value VideoStandard enum value to be set 要设置的视频制式枚举值

*/
Observable<Boolean> setVideoStandard(VideoStandard value);

/**
* Get the photo format
* 获取照片格式
* @return photo format 照片格式

*/
Observable<PhotoFormat> getPhotoFormat();

/**
* Set photo format
* 设置照片格式
* @param value PhotoFormat enum value to be set 要设置的照片格式枚举值

*/
Observable<Boolean> setPhotoFormat(PhotoFormat value);


/**
* Set photo size
* 设置照片尺寸
* @param value PhotoAspectRatio enum value to be set 要设置的照片宽高比枚举值

*/
Observable<Boolean> setAspectRatio(PhotoAspectRatio value);

/**
* Get current photo size
* 获取当前照片尺寸
* @return Current photo size 当前照片尺寸

*/
Observable<PhotoAspectRatio> getAspectRatio();

/**
* Set camera video resolution
* 设置摄像机视频分辨率
* <p/>
* Note: figure out the current standard first. Resolution for NTSC can not be et in PAL, and vice versa.
* 注意:先找出当前制式。NTSC分辨率不能在PAL中设置,反之亦然。
* @param value AutelCameraVideoResolution enum value 道通摄像机视频分辨率枚举值

*/
Observable<Boolean> setVideoResolutionAndFrameRate(VideoResolutionAndFps value);

/**
* Get current video resolution
* 获取当前视频分辨率
* @return Set video resolution 设置的视频分辨率

*/
Observable<VideoResolutionAndFps> getVideoResolutionAndFrameRate();

/**
* Set value of video encoder
* 设置视频编码值
* @param encoding VideoEncodeFormat of video 视频编码值

*/
Observable<Boolean> setVideoEncoder(VideoEncodeFormat encoding);

/**
* Get configuration of video encoder

* 获取视频编码配置
* @return configuration of video encoder 视频编码配置

*/
Observable<VideoEncoderConfiguration> getVideoEncoderConfiguration();

// /**
// * Get mode of camera metering
// */
// Observable<MeteringMode> getMeteringMode();

/**
* Set rotation of camera video
* 设置摄像机视频旋转角度
* @param videoRotation the enum value of the VideoRotation 视频旋转角度枚举值
*/
Observable<Boolean> setVideoRotation(VideoRotation videoRotation);

/**
* Get rotation of camera video
* 获取摄像机视频旋转角度
* @return rotation of camera video. 摄像机视频旋转角度。

*/
Observable<VideoRotation> getVideoRotation();

/**
* Set up camera shutter mode
* 设置摄像机快门模式
* @param shutterMode the enum values of the ShutterMode 快门模式枚举值

*/
Observable<Boolean> setShutterMode(ShutterMode shutterMode);

/**
* Gets camera shutter mode
* 获取摄像机快门模式
* @return camera shutter mode 摄像机快门模式

*/
Observable<ShutterMode> getShutterMode();

/**
* Set Auto Assist Focus enable or not
* 设置自动辅助对焦是否启用
* @param enable whether enable Auto Assist Focus.自动辅助对焦是否启用
*/
Observable<Boolean> setAFAssistFocusEnable(boolean enable);

/**
* Gets Auto Assist Focus enable or not
* 获取自动辅助对焦是否启用
* @return Auto Assist Focus enable or not 自动辅助对焦是否启用
*/
Observable<Boolean> getAFAssistFocusEnable();

/**
* Set Manual Assist Focus enable or not
* 设置手动辅助对焦是否启用
* @param enable whether enable the Manual Assist Focus.手动辅助对焦是否启用
*/
Observable<Boolean> setMFAssistFocusEnable(boolean enable);

/**
* Gets Manual Assist Focus enable or not
* 获取手动辅助对焦是否启用
* @return Manual Assist Focus enable or not 手动辅助对焦是否启用
*/
Observable<Boolean> getMFAssistFocusEnable();

/**
* Sets the PIV mode for XT701 camera.
* 设置XT701摄像机PIV模式。
* @param mode the enum values of the PIV mode.PIV模式的枚举值。

*/
Observable<Boolean> setPIVMode(PIVMode mode);

/**
* Returns the PIV mode of XT701 camera.
* 返回XT701摄像机PIV模式。
* @return the PIV mode of XT701 camera.XT701摄像机PIV模式。

*/
Observable<PIVMode> getPIVMode();

/**
* Sets the timelapse interval for the auto PIV mode.
* 设置自动PIV模式的延时间隔。
* @param interval the enum values of the timelapse interval.延时间隔的枚举值。

*/
Observable<Boolean> setAutoPIVTimelapseInterval(VideoSnapshotTimelapseInterval interval);

/**
* Returns an observable object to switch the camera from the record mode to the previous shoot mode.
* 返回可观察对象以切换摄像机录制模式到上一个拍摄模式。
* @return an observable object to switch the camera from the record mode to the previous shoot mode.切换摄像机录制模式到上一个拍摄模式的可观察对象。

*/

Observable<MediaMode> switchToPreviousMediaMode();

/**
* Returns an observable object to set the tracking mode for XT701 camera.
* 返回可观察对象以设置XT701摄像机跟踪模式。
* @param enable whether enable the tracking mode for XT701 camera or not.XT701摄像机跟踪模式是否启用。

*/
Observable<Boolean> setTrackingModeEnable(boolean enable);

/**
* Returns an observable object to get the position information of the horizontal line.
* 返回可观察对象以获取地平线位置信息。
* @param viewHeight the height of the view.视图的高度。
* @param gimPitch the gimbal pitch angle.云台俯仰角。
* @return an observable object to get the position information of the horizontal line.获取地平线位置信息的可观察对象。

*/
Observable<SkylinePositionData> getSkylinePositionData(int viewHeight, int gimPitch);

/**
* Set video recording format.
* 设置视频录制格式。
* @param encoding the enum values of the VideoEncodeFormat 视频编码格式枚举值。

*/
Observable<Boolean> setVideoEncodeFormat(final VideoEncodeFormat encoding);

/**
* Gets video recording format.
* 获取视频录制格式。
* @return video recording format.视频录制格式。

*/
Observable<VideoEncodeFormat> getVideoEncodeFormat();

/**
* Gets AF Spot Area
* 获取AF点测光区域
* @return AF Spot Area AF点测光区域

*/
Observable<SpotMeteringArea> getFocusAFSpotArea();

/**
* Gets current camera storage location.
* 获取当前摄像机存储位置。
* @return current camera storage location.当前摄像机存储位置。
*/
Observable<SaveLocation> getAlbumLocation();

/**
* Set current camera storage location.
* 设置当前摄像机存储位置。
* @param saveLocation the enum values of the saveLocation.存储位置的枚举值。
*/
Observable<Boolean> setAlbumSaveLocation(SaveLocation saveLocation);

/**
* Format flash card.
* 格式化闪存卡。
* @return Format flash card.格式化闪存卡。
*/
Observable<Boolean> formatFlashMemoryCard();

/**
* Gets flash card status.
* 获取闪存卡状态。
* @return flash card status 闪存卡状态
*/
Observable<FlashCardStatus> getFMCStatus();

/**
* Set HDR function enable or not
* 设置HDR功能是否启用
* @param enable whether enable HDR function.HDR功能是否启用
*/
Observable<Boolean> setHDREnable(boolean enable);

/**
* Gets HDR function enable or not
* 获取HDR功能是否启用
* @return HDR function enable or not HDR功能是否启用
*/
Observable<Boolean> getHDREnable();

/**
* Set Defog function enable or not
* 设置透雾功能是否启用
* @param enable whether enable Defog function 透雾功能是否启用
*/
Observable<Boolean> setDeFogEnable(boolean enable);

/**
* Set defog intensity
* 设置透雾强度
* @param strength the integer between 1 and 10. 1和10之间整数值
*/
Observable<Boolean> setDeFogStrength(int strength);

/**
* Gets defog parameters
* 获取透雾参数
* @return defog parameters 透雾参数
*/
Observable<DeFogParam> getDeFogParams();

/**
* Set ROI enable or not
* 设置ROI是否启用
* @param enable whether enable ROI. ROI是否启用。
*/
Observable<Boolean> setImageRoiEnable(boolean enable);

/**
* Set ROI intensity
* 设置ROI强度
* @param strength the integer between 1 and 10. 1和10之间整数值。
*/
Observable<Boolean> setImageRoiStrength(int strength);

/**
* Set ROI area Spot Area
* 设置ROI点测光区域
* @param x raster No.x in horizontal 光栅水平No.x
* @param y raster No.y in vertical 光栅垂直No.y
*/
Observable<Boolean> setImageRoiArea(int x, int y);

/**
* Gets ROI parameters
* 获取ROI参数
* @return ROI parameters ROI参数
*/
Observable<ImageRoiParam> getImageRoiParams();

/**
* Returns an observable object to get the parameter range manager of XT701 camera.
* 返回可观察对象以获取XT701摄像机参数范围管理器。
* @return an observable object to get the parameter range manager of XT701 camera.获取XT701摄像机参数范围管理器的可观察对象。
*/
Observable<XT701ParameterRangeManager> getParameterRangeManager();

/**
* Set Motion Delay Shot interval
* 设置移动延时拍间隔
* @param interval the integer between 2 and 15. 2和15之间的整数。
*/
Observable<Boolean> setMotionDelayShotInterval(int interval);

/**
* Gets Motion Delay Shot interval
* 获取移动延时拍间隔
* @return Motion Delay Shot interval 移动延时拍间隔
*/
Observable<Integer> getMotionDelayShotInterval();

/**
* Set Motion Delay Shot length
* 设置移动延时拍时长
* @param duration the integer between 5 and 30. 5和30之间的整数。
*/
Observable<Boolean> setMotionDelayShotDuration(int duration);

/**
* Gets Motion Delay Shot length
* 获取移动延时拍时长
* @return Motion Delay Shot length 移动延时拍时长
*/
Observable<Integer> getMotionDelayShotDuration();

/**
* Set MotionDelayShot save or not and photo format.
* 设置移动延时拍是否保存照片格式
* @param rawFormat the enum values of the RawFormat 照片格式枚举值
*/
Observable<Boolean> setMotionDelayShotKeepPhoto(RawFormat rawFormat);

/**
* Get MotionDelayShot photo format info
* 获取移动延时拍照片格式信息
* @return MotionDelayShot photo format info 移动延时拍照片格式信息
*/
Observable<MotionPhotoInfo> getMotionDelayShotKeepPhoto();

}
字段表:PhotoAEBCount
/**
* The number of pictures continuously taken for each shot in AEB mode.
* 在AEB模式下每一次拍照连续拍摄的照片数量。
*/
public enum PhotoAEBCount {
/**
* The number of pictures is 3.
* 照片数量为3。
*/
CAPTURE_3("3 photos once", "3"),
/**
* The number of pictures is 5.
* 照片数量为5。
*/
CAPTURE_5("5 photos once", "5"),
/**
* The number of pictures is unknown.
* 照片数量未知。
*/
UNKNOWN("unknown", "unknown");
}
接口:SaveLocation
/**
* Album storage location
* 相册存储位置
*/
public enum SaveLocation {
SD_CARD(0),
FLASH_CARD(1),
UNKNOWN(-1);
}

4. 结束语

在本教程中,您已经学习了如何使⽤MobileSDK 如何进⾏相机参数设置开发。希望您喜 欢本教程,并继续关注我们的下⼀个教程!