### **可选函数:**
**设置服务器认证密码**
`+ (int) SetServerAuthPass: (NSString*) lpPassword`
功能:设置服务器连接认证密码,确保SDK能正常连接到服务器。
返回值:0表示成功,否则为出错代码
参数:
lpPassword 认证密码(大小写敏感);
备注:
为了防止未授权SDK连接服务器,在服务器配置文件(AnyChatCoreServer.ini)中可设置“SDKAuthPass”,如果该配置项被设置,当SDK连接服务器时,会将该方法所传入的密码加密后传输到服务器,服务器再比较是否合法,如果密码不正确,则连接将被断开。如果该配置项未被设置(配置文件默认),则无论该方法是否被调用,SDK均可正常连接到服务器。
### **必选函数:**
**连接服务器**
`+ (int) Connect: (NSString*) lpServerAddr : (int) dwPort`
功能:用于与服务器建立连接。
返回值:0表示成功,否则为出错代码
参数:
lpServerAddr 服务器IP地址,或是网站域名(URL)地址;
dwPort 服务端口号(默认为8906)
备注:
返回值为0并不表示连接服务器成功,仅表示SDK已成功收到连接服务器的指令,如果连接成功,或是失败,都将会通过相应的接口通知上层应用,这里是一个异步的过程。
* * * * *
**登录系统**
`+ (int) Login: (NSString*) lpUserName : (NSString*) lpPassword`
功能:登录服务器,请求身份认证。
返回值:0表示成功,否则为出错代码
参数:
lpUserName 注册用户名;
lpPassword 登录密码(为空表示游客);
备注:
该方法可以连接系统之后立即调用,而不用关心连接系统是否成功,当SDK连接系统成功之后,如果之前调用过该方法,则SDK将会自动向服务器发出登录系统的申请。
返回值为0并不表示登录服务器成功,仅表示SDK已成功收到登录服务器的指令,如果登录成功,或是失败,都将会通过相应的接口通知上层应用,这里是一个异步的过程。
如果服务器配置了“SDK Filter Plus”插件,则客户端调用该方法后,将会触发其API接口:BRFP_VerifyUser,用户名、密码参数将会作为参数传递给该API函数,由“SDK Filter Plus”完成用户的身份验证工作,服务器根据该API接口的返回值来判定是否通过身份验证,详细信息可参考文档《AnyChat SDK Filter Plus开发指南》。
如果在服务器端使用“AnyChat Server SDK”开发了业务层服务器,则客户端调用该方法后,将会触发业务层服务器的回调函数“BRAS_VerifyUser_CallBack”,由业务层服务器完成用户的身份验证工作,服务器根据回调函数的返回值来判定是否通过身份验证,详细信息可参考文档《AnyChat Server SDK 开发指南》。
`+ (int) LoginEx: (NSString*) lpNickName : (int) dwUserId : (NSString*) lpStrUserId : (NSString*) lpAppId : (int) dwTimeStamp: (NSString*) lpSigStr : (NSString*) lpStrParam;`
功能: 登录扩展接口,支持用户身份验证签名后进行登录。
参数:
lpNickName 字符串值,用户显示名称
dwUserId 整形值,用户Id值,如果应用没有此参数,则传入-1
lpStrUserId 字符串值,用户编号,如果dwUserId参数有值,则此参数值可为传空字符串;如果dwUserId为-1,则需要传此参数值
lpStrAppId 字符串值,在集群版本、视频云平台申请的应用Id
dwTimeStamp 整形值,签名的时间戳,由签名工具返回
lpSigStr 字符串值,使用应用的公钥和私钥进行签名后生成的签名字符串
lpStrParam 字符串值,预留参数,传空字符串
返回值:0表示成功,否则为出错代码;
说明:
此接口用于用户在自有的或第三方的身份验证系统验证后,根据获取的应用公钥和设置的私钥数据,再调用AnyChat提供的或自己编写的身份签名工具对用户进行身份签名。签名后再调用此接口进行登录;通过该接口后则不需要再由AnyChat业务服务器进行身份验证了。
如果在系统或应用中设置了允许用户以游客的身份进行登录,则该接口也可以不用验证用户身份签名,允许用户登录系统
- 一、系统概述
- 1.1系统介绍
- 1.2系统特性
- 1.2.1 视频技术
- 1.2.2 音频技术
- 1.2.3 P2P技术
- 二、开发指南
- 2.1 客户端SDK概述
- 2.1.1 Web
- 2.1.2 Android
- 2.1.3 iOS
- 2.1.4 Windows
- 2.1.5 Linux
- 2.1.6 Mac
- 2.2 客户端SDK的引用及升级
- 2.3 函数调用顺序
- 2.4 初始化
- 2.4.1 Web
- 2.4.2 Android
- 2.4.3 iOS
- 2.4.4 Windows
- 2.4.5 Linux
- 2.4.6 Mac
- 2.5 链接与登陆
- 2.5.1 Web
- 2.5.2 Android
- 2.5.3 iOS
- 2.5.4 Windows
- 2.5.5 Linux
- 2.5.6 Mac
- 2.6 进入房间
- 2.6.1 Web
- 2.6.2 Android
- 2.6.3 iOS
- 2.6.4 Windows
- 2.6.5 Linux
- 2.6.6 Mac
- 2.7 音视频操作
- 2.7.1 用户视频控制
- 2.7.2 用户语音控制
- 2.7.3 设置视频显示位置
- 2.7.4 设置指定用户音视频流相关参数
- 2.7.5 设置外部输入视频格式
- 2.7.6 外部视频数据输入
- 2.7.7 设置外部输入音频格式
- 2.7.8 外部音频数据输入
- 2.8 查询状态
- 2.8.1 查询摄像头的状态
- 2.8.2 查询用户音频设备采集状态
- 2.8.3 查询用户昵称
- 2.8.4 查询用户状态
- 2.9 普通功能
- 2.9.1 获取SDK版本信息
- 2.9.2 获取当前房间在线用户列表
- 2.9.3 获取指定房间在线用户列表
- 2.9.4 传送文本消息
- 2.9.5 透明通道传送缓冲区
- 2.9.6 传送文件
- 2.9.7 查询传输任务相关信息
- 2.9.8 取消传输任务
- 2.9.9 发送SDK Filter通信数据
- 2.9.10 音视频录制
- 2.9.11 图像抓拍(拍照)
- 2.9.12 组播功能控制
- 2.9.13 虚拟背景
- 2.10 离开房间
- 2.11 注销系统
- 2.12 系统设置
- 2.12.1 枚举本地采集设备
- 2.12.2 选择指定采集设备
- 2.12.3 获取当前采集设备
- 2.12.4 获取音频设备当前音量
- 2.12.5 设置指定音频设备音量
- 2.12.6 查询SDK内核参数
- 2.12.7 SDK内核参数设置
- 2.13 媒体播放
- 2.13.1 流媒体播放初始化
- 2.13.2 流媒体播放控制
- 2.13.3 设置流媒体播放视频显示位置
- 2.13.4 流媒体播放获取参数信息
- 2.13.5 流媒体播放释放资源
- 三、参数设置与说明
- 3.1 基础视频概念
- 3.1.1 分辨率与码率
- 3.1.2 帧率
- 3.1.3 H.264编解码
- 3.1.4 分辨率、帧率、码率之间的关系
- 3.2 基础音频概念
- 3.2.1 音频采样率及大小
- 3.2.2 音频声道
- 3.2.3 AAC编解码
- 3.3 视频质量调优
- 3.4 视频通话对带宽的需求
- 3.4.1 带宽的影响因素
- 3.4.2 视频场景的带宽要求
- 四、音视频交互示例代码
- 4.1 修改视频参数
- 4.2 如何自动打开对方的视频
- 4.3 打开多路音视频
- 五、常见问题
- 1、视频模糊有马赛克
- 2、视频卡顿
- 3、摄像头亮灯但本地视频无显示
- 4、双向视频,听不见对方声音
- 5、双向视频,看不见对方视频
- 6、内网正常,外网无法音视频
- 7、声音有啸叫和杂音
- 8、同网段正常、不同网段无法音视频
- 9、进入房间失败,返回错误代码-1
- 10、本地视频方向不正确
- 11、手机本地正常,Web看手机端有裁剪
- 12、双方视频出现绿屏、花屏
- 13、闪屏
- 14、IP摄像头的支持
- 15、服务器日志采集自定义文件夹不生效
- 16、特殊3D摄像头无法打开
- 17、音视频不同步
- 18、签名服务器部署后点登陆抛空指针异常
- 19、iOS 按HOME键进入后台 听不到 对方的声音了,对方能听到自己的(已开启音频后台模式)