Android移动端音视频的快速开发教程(八)


4.5.1.

获取SDK版本信息
public int GetSDKMainVersion();
功能:获取SDK主版本号。
返回值:主版本号
参数:无
public int GetSDKSubVersion ();
功能:获取SDK从版本号。
返回值:从版本号
参数:无
public String GetSDKBuildTime ();
功能:获取SDK编译时间字符串。
返回值:编译时间字符串
参数:无
4.5.2.
获取当前房间在线用户列表
public native int[] GetOnlineUser();
功能:获取当前房间在线用户列表(不包含自己)
返回值:在线用户ID数组
参数:
无。
备注:
获取在线用户列表,并不包含当前用户自己的ID,自己的ID在登录事件(AnyChatBaseEvent)中已通知给上层应用。
第 36 页 共 51 页
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
4.5.3.
传送文本消息
int SendTextMessage(int userid, boolean secret, String message);
功能:向指定的用户传送文本消息
返回值:0表示成功,否则为出错代码
参数:
dwUserid: 目标用户编号,-1表示大家(所有人)
secret: 是否为密语,只在dwUserid不为-1时有效,选择密语时,其它用户看不到发送的消息
message: 消息字符串
备注:
可以利用该消息实现文字交流的功能,发送消息的对象可以是大家,也可以是指定的对象,如果是对指定的对象发送文字消息,可以选择密语。
对方收到该消息后,会触发AnyChatTextMsgEvent接口的接口函数的调用。
4.5.4.
透明通道传送缓冲区
int TransBuffer(int userid, byte[] buf, int len);
功能:透明通道传送缓冲区
返回值:0表示成功,否则为出错代码
参数:
dwUserid: 目标用户编号,-1表示大家(用户当前房间所有人)
buf: 缓冲区
len: 缓冲区的大小
备注:
可以利用该方法实现自定义功能,缓冲区采用透明传输,目标对象可以是大家,也可以是指定的对象。
该方法将会触发对方的AnyChatTransDataEvent接口的对应接口函数。
该API方法支持跨房间传输缓冲区数据,目标用户为指定用户时,目标用户可以与自己在不同的房间,或是目标用户没有进入任何房间,或是源用户(自己)
第 37 页 共 51 页
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
没有进入任何房间,只要双方都登录服务器成功,则可利用该方法传输缓冲区,当目标用户编号为-1时,则源用户(自己)必须已经在房间中,表示向该房间的其它用户广播数据(注:自己不能发送给自己)。
4.5.5.
透明通道传送缓冲区扩展
int TransBufferEx(int userid, byte[] buf, int len, int wparam, int lparam, int flags);
功能:透明通道传送缓冲区
返回值:>0表示任务ID号(可利用该ID查询该任务的传输进度),否则表示出错。
参数:
userid: 目标用户编号,只针对某一个用户,不能为-1(所有人)
buf: 缓冲区,≤1024KB(1MB),内部会自动分包处理
len: 缓冲区的大小
wParam: 附带参数,由上层应用自定义
lParam: 附带参数2,由上层应用自定义
dwFlags: 特殊功能标志,当对该缓冲区有特殊要求时,可通过使用相关的功能标志,通知SDK进行特殊的处理,默认为0,SDK将自动根据网络状态选择合适的传输途径(TCP、UDP or P2P)
备注:
该方法与“TransBuffer”功能相同,都是传输上层应用自定义(透明通道)数据,区别在于该方法通过设置相应的功能标识,如可选择采用UDP通道传输,但是只针对指定的用户传输,而“TransBuffer”方法则固定采用TCP通道传输,且缓冲区大小不能超过1024个字节,但可以针对所有用户传输。
从应用来看:
(1)、TransBuffer适合数据量小、要求实时传输的缓冲区传递,如控制指令等;
(2)、TransBufferEx适合数据量大、对实时性要求不高的需求;
第 38 页 共 51 页
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
4.5.6.
传送文件
int TransFile(int userid, String filepath, int wparam, int lparam, int flags);;
功能:传送文件给指定用户
返回值:>0表示任务ID号(可利用该ID查询该任务的传输进度),否则表示出错。
参数:
userid: 目标用户编号,只针对某一个用户,不能为-1(所有人)
filepath: 本地文件名,含路径
wParam: 附带参数1,便于上层应用扩展
lParam: 附带参数2
dwFlags: 特殊功能标志,参考:“TransBufferEx”方法
备注:
该方法传输效率与“TransBufferEx”方法相同,只是在SDK内部封装了文件的分组传输功能,实现对上层应用的透明,简化上层应用的开发难度。
4.5.7.
查询传输任务相关信息
INT QueryTransTaskInfo(INT Userid, INT TaskId, int infoname, char FAR* infoval, int infolen)
功能:查询与传输任务相关的信息,如传输进度、传输状态、传输码率等
返回值:0表示查询成功,否则为出错代码
参数:
dwUserid: 任务发起者用户编号(并非传输目标用户编号)
dwTaskId: 需要查询的任务编号
infoname 需要查询的信息代码(见备注附表)
infoval 查询信息值的保存参数地址
infolen 保存查询信息值参数类型所占内存大小
备注:
通过调用该方法,可以查询指定传输任务编号的缓冲区传输情况。用户编号
第 39 页 共 51 页
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
与任务编号组合才具有唯一性,不同的用户可能存在相同的任务编号。
目前提供的查询的信息代码见下表:
信息代码定义
参数类型
用途
备注
TRANSTASK_PROGRESS
DOUBLE
传输任务进度查询
0.0 ~ 100.0
TRANSTASK_BITRATE
INT
传输任务当前码率
单位:bps
传输任务当前状态:
1
准备状态
2
传输状态
3
完成状态
4
任务被发送者取消
TRANSTASK_STATUS
INT
5
任务被接收方取消
4.5.8.
激活(关闭)SDK调用日志
INT ActiveCallLog(BOOLEAN bActive);
功能:打开,或是关闭SDK调用期间所产生的日志
返回值:0表示成功,否则为出错代码
参数:
bActive: 是否打开日志功能
备注:
通过调用该方法,可以记录应用程序调用该SDK的方法顺序及参数,对于分析利用该SDK进行开发所产生的异常现象有一定的帮助,建议在开发过程中打开该选项,在发布的版本中关闭该选项,所产生的日志文件名为:BRAnyChatCore.log,与调用者程序在同一级目录。
SDK默认已打开日志记录功能,该方法必须在SDK初始化之前调用。
4.5.9.
发送SDK Filter通信数据
int SendSDKFilterData(byte[] buf, int len);
第 40 页 共 51 页
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
功能:向服务器发送SDK Filter通信数据
返回值:0表示成功,否则为出错代码
参数:
buf: 缓冲区
len: 缓冲区的大小
备注:
服务器收到数据后,会将该缓冲区数据全部提交给SDK Filter,由SDK Filter来解析,该缓冲区的内容对于本SDK和服务器来说,都是透明的。

你可能感兴趣的:(音视频开发)