🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1) 设置必要音视频参数,参考代码如下: ~~~ AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 1); ~~~ 2) 摄像头硬件初始化 该操作需要在显示视频 activity 的 oncreate 中执行(注意:必须是 OnCreate 方法中初始化 Camera 设备),参考代码如下: ~~~ // 启动AnyChat传感器监听 anychat.mSensorHelper.InitSensor(this); // 初始化Camera上下文句柄 AnyChatCoreSDK.mCameraHelper.SetContext(this); //设置SURFACE_TYPE_PUSH_BUFFERS模式 mSurfaceLocal.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFER S); // 打开本地视频预览,开始采集本地视频数据 mSurfaceLocal.getHolder().addCallback(AnyChatCoreSDK.mCameraHelper); ~~~ 3) 打开本地音视频(需要进入房间) 调用UserCameraControl打开视频,调用 UserSpeakControl打开音频。打开本地音视频数据需要在进入房间成功之后才有效,即在收到 OnAnyChatEnterRoom回调。参考代码如下: ~~~ //打开本地视频, 第一个参数用-1表示本地,也可以用本地的真实userid anychat.UserCameraControl(-1, 1); //打开本地音频 anychat.UserSpeakControl(-1, 1); ~~~ 4) 关闭本地音视频 打开本地音视频后,可以在音视频交互的过程中选择关闭本地音视频。同时,还可以在关闭之后重新打开本地音视频。参考代码如下: ~~~ //关闭本地视频,第一个参数用-1表示本地,也可以用本地的真实userid anychat.UserCameraControl(-1, 0); //关闭本地音频 anychat.UserSpeakControl(-1, 0); ~~~ 5) 请求远程音视频 请求通话目标用户的音视频数据,调用 UserCameraControl 打开视频,调用UserSpeakControl 打开音频,bindVideo、SetVideoUser 绑定显示视频的 surfaceview (mSurfaceRemote 为指定显示远程视频的 ~~~ // mRemoteUserid为通话目标对象的userId; int index = anychat.mVideoHelper.bindVideo(mSurfaceRemote.getHolder()); anychat.mVideoHelper.SetVideoUser(index,mRemoteUserid); anychat.UserCameraControl(mRemoteUserid, 1); anychat.UserSpeakControl(mRemoteUserid, 1); ~~~ 在触发 OnAnyChatOnlineUser 或者 OnAnyChatEnterRoom 并判断通话目标对象已经进入当前房间之后,该操作才有效 6) 关闭远程音视频 请求远程音视频后,可以在音视频交互的过程中选择关闭远程音视频。同时,还可以在关闭之后重新请求远程音视频;在音视频交互结束之后需要调用该操作,释放远程音视频资源,参考代码如下: ~~~ //关闭远程视频, mRemoteUserid为通话目标的userid anychat.UserCameraControl(mRemoteUserid, 0); //关闭远程音频, anychat.UserSpeakControl(mRemoteUserid, 0); ~~~ 7) 离开房间 释放当前房间内的音视频资源。参考代码如下: ~~~ //离开指定房间,-1表示离开当前所在房间 anychat.LeaveRoom(roomid); ~~~ 在音视频交互结束后,可调用该操作。离开当前房间之后,可再次选择进入指定房间。 8) 退出登录 断开与 AnyChat 通讯服务器连接。参考代码如下: ~~~ //断开与服务器的连接 anychat.Logout(); ~~~ 在需要断开跟AnyChat服务器通讯连接的时候,可调用该操作。退出之后,可以再次调用连接、登录服务器。 9) 释放资源 释放整个 SDK 资源。参考代码如下: ~~~ //释放资源 anychat.Release(); ~~~ 建议在退出整个应用程序的时候调用该操作。释放 SDK 之后,需要重新初始化 SDK 之后才能进行连接、登录、进入房间等操作。