AnyChat SDK是一套多媒体即时通讯平台库,只需要几个简单的API调用,即可实现多个用户之间的语音、视频、文字交互。AnyChat支持“一对一”、“一对多”以及“多对多”等多种模式的音频、视频交互。

AnyChat支持跨平台的应用,服务器支持Windows、Linux、Unix等所有主流服务器操作系统,客户端目前支持Windows、Web、Linux(x86、ARM)、Android、iOS以及Mac平台。

AnyChat SDK由中心管理人员通过AnyChat信息采集实现对移动终端的安全管控,客户信息实时验证,终端拍照影像,简化信息录入。增加开户率。

AnyChat是国内知名音视频互动开发平台。AnyChat是佰锐科技全力打造的核心产品。

以上是从官网复制过来的,想要学习的话,先到官网下载sdk,里面包含文档和案例,很详细,还不错

这边不是在给它们做广告,只是做个该sdk的简要说明,因为要开发一个APP需要用到这个sdk,在这之前,我也没有听过这家公司,呵呵,demo是可以用的,还不知道开发后效果怎么样。

为了方便学习和理清思路,以下是根据官方HelloAnyChat的demo整理的学习笔记:(简要的开发流程)

一、初始化操作

1.创建实例

public AnyChatCoreSDK anyChatSDK;
anyChatSDK = AnyChatCoreSDK.getInstance(this);//获取实例
anyChatSDK.SetBaseEvent(this);//监听链接服务器、登录以及房间状态等事件

2.初始化SDK

anyChatSDK.InitSDK(android.os.Build.VERSION.SDK_INT, 0);//设置当前的sdk版本

3.配置视频参数(其实也可以直接使用系统默认的配置)

AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_BITRATECTRL, 150 * 1000);// 本地视频编码的码率(0表示质量优先模式)
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_QUALITYCTRL, 3);// 中等视频质量
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FPSCTRL, 10);// 本地视频编码的帧率
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_GOPCTRL, 10 * 4);// 本地视频编码的关键帧间隔
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_WIDTHCTRL, 0);// 本地视频采集分辨率
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_HEIGHTCTRL, 0);
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_PRESETCTRL, 1);///视频编码预设参数(值越大,编码质量越高,越耗cpu)
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_APPLYPARAM, 0);// 服务器视频参数配置(让视频参数生效)
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_NETWORK_P2PPOLITIC, 1);// P2P设置
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_OVERLAY, 1);// 视频Overlay模式设置
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_ECHOCTRL, 1);// 回音消除设置
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC, 0);// 平台硬件编码设置
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_ROTATECTRL, 0);// 本地视频旋转模式设置
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FIXCOLORDEVIA, 0);// 本地视频采集偏色修正设置 0 关闭(默认),1 开启
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_GPUDIRECTRENDER, 0);// 视频GPU渲染设置 0 关闭(默认),// 1 开启
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 1);// 本地视频自动旋转设置 0表示关闭, 1 开启[默认]

二、登录操作

anyChatSDK.Connect("demo.anychat.cn",8906);//连接AnyChat视频云平台的服务器
anyChatSDK.Login("Android01", "");//用户登录,账号名称可以随便写</span>
anyChatSDK.EnterRoom("2", "");//进入房间号2
 

 
 注意1:AnyChat可以连接自主部署的服务器、也可以连接AnyChat视频云平台; 连接自主部署服务器的地址为自设的服务器IP地址或域名、端口;连接AnyChat视频云平台的服务器地址为:demo.anychat.cn;端口为:8906(这里要注意的是服务器域名是:demo.anychat.cn,不能写成 
cloud.anychat.cn) 

注意2:AnyChat支持多种用户身份验证方式,包括更安全的签名登录,

详情请参考:http://bbs.anychat.cn/forum.php?mod=viewthread&tid=2211&highlight=%C7%A9%C3%FB

测试的时候随便修改账号名称,都可以成功登录进去,比如用户登录代码写成:

anyChatSDK.Login("测试11", "");



三、退出登录

anyChatSDK.LeaveRoom(-1);// 退出房间
anyChatSDK.Logout();// 注销登录(将关闭网络连接) 
这里需要注意的是,离开房间后,可以进入新的房间,

系统注销之后,可以重新登录,

在这些过程中,都可以调用连接服务器的API接口

四、退出应用

protected void onDestroy() {
	anyChatSDK.Release();//释放anychatSDK资源
	super.onDestroy();
}

在退出应用后,需要释放资源,

释放资源后,就不能再调用连接服务器的API接口,因为SDK已经停止工作。

如果释放资源后,还想要 连接服务器的话,那就需要添加如下设置即可:

anyChatSDK.InitSDK(android.os.Build.VERSION.SDK_INT, 0);
没错,就是重新设置安卓系统的sdk版本即可,同【一、初始化操作】->【2.初始化SDK

此外 由于释放资源后视频参数的配置都清零,不过在后面运行过程中会恢复成默认值

因此也需要重新进行配置,同【一、初始化操作】->【3.配置视频参数】

注意,一定要在2.初始化SDK】之后再进行【3.配置视频参数】,否则设置参数无效

五、事件监听说明

在【一、初始化操作】->【1.创建实例】中,进行了如下操作:

anyChatSDK.SetBaseEvent(this);//监听链接服务器、登录以及房间状态等事件
这句 实际上就是 设置了如下的监听事件:

       // 连接服务器 anyChatSDK.Connect();执行后的返回结果
	@Override
	public void OnAnyChatConnectMessage(boolean bSuccess) {
		if (!bSuccess) {
                    //连接服务器失败,自动重连,请稍后...
		}
		else {
                    //连接服务器成功
		}
	}
        // 用户登录 anyChatSDK.Login()执行后的返回结果
	@Override
	public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode) {
		if (dwErrorCode == 0) {
			//登录成功
		} else {
			//登录失败
		}
	}
        // 进入房间 anyChatSDK.EnterRoom();执行后的返回结果
	@Override
	public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode) {
		if (dwErrorCode == 0) {
			//进入房间成功
		} else {
			//进入房间失败
		}		
	}
	// 进入房间成功 OnAnyChatEnterRoomMessage(dwRoomId, 0) 后,
	// 调用一次,dwUserNum为房间总人数,dwRoomId为房间号
	@Override
	public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId) {
		
	}
        // SDK平台自动调用,当前房间 有 用户进入或离开 执行该方法
	@Override
	public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId) {
		// TODO Auto-generated method stub

	}
        // SDK平台自动调用,和服务器通信失败 执行该方法
	@Override
	public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter) {
		// TODO Auto-generated method stub

	}

 

六、案例截图

1.用户登陆界面


2.进入房间界面


3.视频通话界面(点击要通话的对象后就进入该界面)==对方未应答


4.视频通话界面(双方都点击要通话的对象后就进入该界面)==对方应答


5.视频参数设置界面


以上说明都非常通俗,希望大家可以看懂,不过官方的资料也写的很清楚,而且给了几个案例都很好,很棒,

尤其还提供了服务器,不需要初学者自己搭建服务器,希望官方还能多做些案例给初学者学习


相关资料下载:http://download.csdn.net/detail/ljb568838953/9545105


转载请注明出处:http://blog.csdn.net/ljb568838953/article/details/51613315





Logo

更多推荐