This repository has been archived by the owner on Dec 23, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 50
android sdk 接口说明
xiegaoxi edited this page Jun 12, 2018
·
4 revisions
/**
* 开启百度AR功能
*
* @param source ar输入参数
* @param target ar返回参数
* @param callback 用于DuMix操作即中间状态回调
*/
void setup(DuMixSource source, DuMixTarget target, DuMixCallback callback);
/**
* 切换AR场景
*
* @param source ar输入参数
*/
void changeCase(DuMixSource source);
/**
* 暂停AR场景显示,暂停算法,但是资源并未释放
* 细化以下说明
*/
void pause();
/**
* 恢复AR场景显示,开启算法
* 前提是资源已经加载,并已经调用了pause
*/
void resume();
/**
* 将当前场景重置,及模型及算法恢复最初位置与状态
*/
void reset();
/**
* 输入相机Preview的YUV420SP数据
*
* @param data camera previewCallback返回的YUV数据
* @param width YUV data数据的宽
* @param height YUV data数据的高
*/
void onCameraPreviewFrame(final byte[] data, int width, int height);
/**
* 屏幕点触事件传入
*
* @param event 屏幕点触事件
*/
boolean onTouchEvent(MotionEvent event);
/**
* 手机横竖屏切换
*
* @param orientation 手机横竖屏方向
*/
void orientationChange(int orientation);
/**
* 从上层将消息传入lua中,采用key-value的形式,value只支持int,float,bool和string类型
*
* @param msg2lua 屏幕点触事件
*/
boolean sendMessage2Lua(HashMap<String, Object> msg2lua);
// /**
// * 是否支持前置摄像头
// *
// * @param resFilePath 本地资源路径
// */
// boolean isSupportFrontCamera(String resFilePath);
/**
* Camera Button点击
*/
void onClickCameraButton();
/**
* 前后摄像头切换
*
* @param front 是否是前摄像头
*/
void switchCamera(boolean front);
/**
* 拍照
*
* @param outputFile 拍照文件输出路径与名称
* @param callback 拍照结果及文件路径返回
*/
void takePicture(String outputFile, TakePictureCallback callback);
/**
* 拍照
*
* @param callback 拍照结果及bitmap返回
*/
void takePicture(TakePictureCallback2 callback);
/**
* 开始录像
*
* @param outputFile 录像文件输出路径与名称
* @param totalTimeMs 录像最长时间(单位毫秒)
* @param callback 录像过程回调
*/
void startRecord(String outputFile, long totalTimeMs, MovieRecorderCallback callback);
/**
* 结束录像
*/
void stopRecord();
// /**
// * 是否包含音乐
// *
// * @param resFilePath 本地资源路径
// */
// boolean isContainMisic(String resFilePath);
/**
* 结束ar,释放相关资源
*/
void release();
/**
* 离线下载case接口
*/
void downloadCase(String arKey, ArCaseDownloadListener listener);
/**
* 取消下载case接口
*/
void cancelDownloadCase(String arKey);
// ar场景的唯一标示ID
private String mArKey;
// 如果是百度服务器下载资源,则以下两个参数无需设置
// ar场景类型,目前支持Track,IMU,SLAM
private int mArType = -1;
// ar场景所需要的资源
private String mResFilePath;
// 如果最终输出不需要绘制相机数据,以下三个参数则无需设置
// 相机数据输入
private boolean mFrontCamera = false;
private SurfaceTexture mCameraSource;
private int mSourceWidth = 0;
private int mSourceHeight = 0;
// ar绘制目标,用于将最终绘制完的图像返回
private SurfaceTexture mDrawTarget;
private SurfaceTexture.OnFrameAvailableListener mTargetFrameAvailableListener;
// 返回目标的宽高
private int mTargetWidth;
private int mTargetHeight;
// 绘制返回目标变形控制
private ScaleType mScaleType;
// 是否绘制相机背景
private boolean mDrawPreview;
DuMixCallback:
/**
* 百度AR内部流程状态返回
*
* @param state 内部流程状态,用于被动状态返回
* @param data 外部需要的相关信息,比如提示字符串等
*/
void onStateChange(int state, Object data);
/**
* lua消息透传给上层的接口
*
* @param luaMsg lua消息
*/
void onLuaMessage(HashMap<String, Object> luaMsg);
/**
* 百度AR内部错误状态返回
*
* @param error 内部错误状态,用于被动状态返回
* @param msg 内部错误信息
*/
void onStateError(int error, String msg);
/**
* 百度AR启动结果返回
*
* @param result 是否成功
*/
void onSetup(boolean result);
/**
* AR场景切换结果返回
*
* @param result 是否成功
*/
void onCaseChange(boolean result);
/**
* AR case创建成功
*
* @param arResource 创建的arResource资源
*/
void onCaseCreated(ARResource arResource);
/**
* AR场景暂停返回
*
* @param result 是否成功
*/
void onPause(boolean result);
/**
* AR场景恢复返回
*
* @param result 是否成功
*/
void onResume(boolean result);
/**
* AR场景重置,恢复初始状态
*
* @param result 是否成功
*/
void onReset(boolean result);
/**
* 百度AR结束结果返回
*
* @param result 是否成功
*/
void onRelease(boolean result);
/**
* 拍照结果返回
*
* @param result 是否成功
* @param filePath 生成文件的路径
*/
void onPictureTake(boolean result, String filePath);
void onRecorderStart(boolean result);
void onRecorderProcess(int process);
void onRecorderComplete(boolean result, String outFilePath);
void onRecorderError(int error);