# Android SDK version 0.0.1
*2016-08-16 更新*
### SDK使用
dotEngine Android SDK 提供aar打包文件,把aar导入项目既可以使用.
### API文档
<br \/>
#### DotEngine 相关
> ** 创建DotEngine实例 **
```
DotEngine.getInstance()
* 此方法会创建一个dotEngine的实例
```
<br \/>
> ** 设置相关的回调 **
```
boolean sharedInstanceWithListener(Context context, final DotEngineListener listener);
* 此方法会给dotEngine实例设置相关的回调方法
```
<br \/>
> ** 设置视频的质量 **
```
void setupVideoProfile(DotRTCEngineVideoProfileType dotRtcEngineVideoProfileType);
* 设置视频的质量
\/\/ weight high fps bts
DotEngine_VideoProfile_120P(0, 160, 120, 15, 80), \/\/ 160x120 15 80
\/\/ RTCEngine_VideoProfile_120P_3 = 2, \/\/ 120x120 15 60
DotEngine_VideoProfile_120P_2(1, 120, 160, 15, 80),\/\/
RTCEngine_VideoProfile_120P_3(2, 120, 120, 15, 60),\/\/
\/\/ RTCEngine_VideoProfile_180P = 10, \/\/ 320x180 15 160
DotEngine_VideoProfile_180P(10, 320, 180, 15, 160),\/\/
\/\/ RTCEngine_VideoProfile_180P_2 = 11, \/\/ 180x320 15 160
DotEngine_VideoProfile_180P_2(11, 180, 320, 15, 160),\/\/
\/\/ RTCEngine_VideoProfile_180P_3 = 12, \/\/ 180x180 15 120
DotEngine_VideoProfile_180P_3(12, 180, 180, 15, 120),\/\/
\/\/ RTCEngine_VideoProfile_240P = 20, \/\/ 320x240 15 200
DotEngine_VideoProfile_240P(20, 320, 240, 15, 200),\/\/
\/\/ RTCEngine_VideoProfile_240P_2 = 21, \/\/ 240x320 15 200
DotEngine_VideoProfile_240P_2(21, 240, 320, 15, 200),\/\/
\/\/ RTCEngine_VideoProfile_240P_3 = 22, \/\/ 240x240 15 160
DotEngine_VideoProfile_240P_3(22, 240, 240, 15, 160),\/\/
\/\/ RTCEngine_VideoProfile_360P = 30, \/\/ 640x360 15 400
DotEngine_VideoProfile_360P(30, 640, 360, 15, 400),\/\/
\/\/ RTCEngine_VideoProfile_360P_2 = 31, \/\/ 360x640 15 400
DotEngine_VideoProfile_360P_2(31, 360, 640, 15, 400),\/\/
\/\/ RTCEngine_VideoProfile_360P_3 = 32, \/\/ 360x360 15 300
DotEngine_VideoProfile_360P_3(32, 360, 360, 15, 300),\/\/
\/\/ RTCEngine_VideoProfile_360P_6 = 35, \/\/ 360x360 30 500
\/\/ RTCEngine_VideoProfile_480P = 40, \/\/ 640x480 15 500
DotEngine_VideoProfile_480P(40, 640, 480, 15, 500),\/\/
\/\/ RTCEngine_VideoProfile_480P_2 = 41, \/\/ 480x640 15 500
DotEngine_VideoProfile_480P_2(41, 480, 640, 15, 500),\/\/
\/\/ RTCEngine_VideoProfile_480P_3 = 42, \/\/ 480x480 15 400
DotEngine_VideoProfile_480P_3(42, 480, 480, 15, 400),\/\/
DotEngine_VideoProfile_480P_4(43, 640, 480, 30, 750),\/\/
DotEngine_VideoProfile_480P_5(44, 480, 640, 30, 750),\/\/
DotEngine_VideoProfile_480P_6(45, 480, 480, 30, 680),\/\/
DotEngine_VideoProfile_480P_7(46, 640, 480, 15, 1000),\/\/
DotEngine_VideoProfile_720P(50, 1280, 720, 15, 1000),\/\/
DotEngine_VideoProfile_720P_2(51, 720, 1280, 15, 1000),\/\/
DotEngine_VideoProfile_720P_3(52, 1280, 720, 30, 1700),\/\/
DotEngine_VideoProfile_720P_4(53, 720, 1280, 30, 1700),\/\/
```
<br \/>
> ** 得到视频的状态 **
```
boolean videoEnable();
* 视频的开启状态
```
<br \/>
> ** 得到音频的状态 **
```
boolean audioEnable();
* 音频的开启状态
```
<br \/>
> ** 加入房间 **
```
boolean joinRoom(final String dotToken);
* 根据得到的token加入房间
```
<br \/>
> ** 离开房间 **
```
void leaveRoom();
* 离开房间
```
<br \/>
> ** 开启本地的音视频 **
```
boolean startPreview();
* 开启本地的音视频, 使用的场景是需要在加入房间之前看到自己的预览, 如果在加入房间之前没有开启预览joinRoom会自动的开启预览
```
<br \/>
> ** 关闭本地的音视频 **
```
void stopPreview();
* 关闭本地的音视频, 在leaveRoom的时候不会自动关闭本地的音视频, 需要开发者手动调用.
```
<br \/>
> ** 切换前后摄像头 **
```
void switchCamera();
* 切换前后摄像头
```
<br \/>
> ** 开启\/关闭视频 **
```
void enableVideo(final boolean enable);
* enable 为true 或者 false, 分别代表开启和关闭, 结果会通过回调来通知用户
* 调用此方法后调用结果会通知到在房间的其他用户
```
<br \/>
> ** 开启\/关闭音频 **
```
void enableAudio(final boolean enable);
* enable 为true或者false, 分别代表开启和关闭, 结果会通过回调来通知用户
* 调用此方法后调用结果会通知到房间的其他用户
```
<br \/>
> ** 开启\/关闭麦克风模式 **
```
void enableSpeakerphone(boolean enable);
* 开启\/关闭麦克风模式, enable为true或者false, 分别代表开启和关闭,默认是开启
```
<br \/>
> ** 获得某个用户的视频视图 **
```
SurfaceView getVideoView(final String userId);
* 获得某个用户的视频视图, userId为用户的id, 如果不存在会返回null
```
<br \/>
> ** 获得当前用户 **
```
String currentUser();
```
<br \/>
> ** 获得当前房间的用户列表 **
```
Set<String> getUsers();
* 获得当前房间的用户列表
```
<br \/>
> ** 应用进入后台后 **
```
void onResume();
* 应用进入后台后
```
<br \/>
> ** 销毁当前的实例 **
```
void destroy();
* 销毁当前的实例
```
<br \/>
#### DotEngineListener 事件回调
<br \/>
> ** abstract public void onInitPrepared() **
```
* 初始化完成,可以开始预览加入房间了
```
<br \/>
> ** abstract public void onJoined(String user) **
```
* 有用户进入了房间,包括自己
```
<br \/>
> ** abstract public void onLeave(String user) **
```
* 有用户离开的房间
```
<br \/>
> ** abstract public void onOccurError(DotEngineErrorType errorCode); **
```
* 发生了一些错误回调
```
<br \/>
> ** public void onEnableAudio(boolean enable, String user) **
```
* 音频开关回调, 包括远程的人
```
<br \/>
> ** public void onEnableVideo(boolean enable, String user) **
```
* 视频开关回调 ,包括远程的人
```
<br \/>
> ** abstract public void onAddVideoView(String user, SurfaceView view) **
```
* 视频视图加入回调, 包括远程的人
```
<br \/>
> ** abstract public void onRemoveVideoView(String user, SurfaceView view) **
```
* 视频视图移除回调, 包括远程的人
```
<br \/>
> ** public void onAddStream(String user) **
```
* stream 添加回调,非必须实现. 有特定需求再实现这个,比如远程用户没有视频
```
<br \/>
> ** public void onRemoveStream(String user) **
```
* stream 移除回调, 非必须实现,
```