这里主要介绍Android的音视频开发!
2.3.
编程要点
2.3.1.
SDK的Java Package
AnyChat for Android 的package 路径是:com.bairuitech.anychat,由于内核采用了JNI技术,需要与该包进行交互,所以上层不能修改包的名称。
2.3.2.
SDK与Activity
Android应用是由一个或多个Activity组合而成,每个Activity都有其生命周期(可参考Android相关开发文档),而AnyChat for Android内核采用JNI技术,并进行了特殊的设计,使得AnyChat for Android可以在多个Activity中共享,即AnyChat for Android的生命周期是从第一个Activity调用InitSDK方法开始,到最后一个Activity调用Release方法结束,中间的Activity不需要再初始化SDK。这样便可实现在第一个Activity中登录之后,便于立即切换第二个Activity继续操作,而不需要在第二个Activity中再进行登录的操作。
2.3.3.
SurfaceView视频显示
AnyChat for Android采用SurfaceView进行视频显示,上层应用只需要在Activity中创建一个SurfaceView控件,然后将控件句柄通过SetVideoPos方法传递给SDK,则当有视频数据到达时,内核将会自动将视频显示到该SurfaceView控件上,不需要上层应用来处理视频的显示。
需要注意的是,部分Android设备显示本地视频时,需要启动Overlay模式,否则不能进行本地视频的预览和采集,当启动Overlay模式时,需要对SurfaceView控件进行相关属性的设置,详细信息可参考随AnyChat for Android一同发布的Demo程序源代码。
2.3.4.
字符编码
Android平台上层是Java虚拟机,采用Unicode编码,AnyChat for Android
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
内核在处理Android与Windows平台的通信时,会自动将字符串(如文字聊天数据)转换为上层平台所对应的编码,不需要应用层进行转换,但是当上层应用使用透明通道在客户端与服务器,或是客户端之间传输数据,而需要显示时,就需要上层应用手动来处理编码转换的任务,否则显示将会出现乱码。