音视频通讯SDK API参考手册  iOS 1.6.0
QAVContext类 参考

AVContext对象封装类,代表着一个SDK运行实例

#import <QAVContext.h>

类 QAVContext 继承关系图:

构造函数

(QAVResult) - startContext:
 启动QAVContext对象。 更多...
 
(QAVResult) - stopContext:
 终止QAVContext对象。 更多...
 
(QAVResult) - enterRoom:delegate:
 进入音视频房间。 更多...
 
(QAVResult) - exitRoom
 退出音视频房间。 更多...
 

类方法

(QAVContext *) + CreateContext:
 创建QAVContext对象。 更多...
 
(void) + DestroyContext:
 销毁目前的QAVContext的单例对象。 更多...
 

属性

QAVContextConfigConfig
 创建AVContext对象所需的配置信息 更多...
 
QAVRoomroom
 音视频房间 更多...
 
QAVAudioCtrlaudioCtrl
 音频控制器 更多...
 
QAVVideoCtrlvideoCtrl
 视频控制器 更多...
 

函数文档

+ (QAVContext*) CreateContext: (QAVContextConfig *)  config

App使用SDK总是从CreateContext开始的,该静态成员函数返回一个新的QAVContext实例。

参数
config创建QAVContext所需的配置信息。
返回
成功则返回QAVContext的实例指针;否则返回nil。
备注
  • 创建成功之后,App需要进一步调用StartContext来启动QAVContext对象。
  • App必须保证QAVContext实例的唯一性,同时创建多个QAVContext实例可能会因为设备占用等方面的原因,出现无法预料的结果。
+ (void) DestroyContext: (QAVContext *)  context

需要在CreateContext之后才能调用

参数
context需要销毁的QAVContext对象。
- (QAVResult) enterRoom: (QAVRoomParam *)  param
delegate: (id< QAVRoomDelegate >)  dlg 

EnterRoom()是一个异步操作,内部会连接服务器,申请进入音视频房间。

参数
param进入房间所需的参数:
进入双人房间,必须传递QAVPairParam类型的参数;
进入多人房间,必须传递QAVMultiParam类型的参数。
dlg房间委托对象:
进入双人房间和多人房间,都统一传递继承avRoomDelegate的委托对象。
返回
返回值表示异步操作启动是否成功;

异步操作执行结果通过继承QAVRoomDelegate的委托对象的OnEnterRoomComplete()返回。

返回值
QAV_OK启动成功。
QAV_ERR_CONTEXT_NOT_STARTEDStartContext()没有执行成功。
QAV_ERR_ALREADY_EXISTS没有退出上一个音视频房间。
QAV_ERR_INVALID_ARGUMENT委托或房间配置信息为空,或者委托和房间类型不匹配。
备注
EnterRoom必须在StartContext执行成功之后调用才有效。 目前同一时刻只支持进入一个音视频房间,所以:
  • 调用EnterRoom之前,必须先退出上一个音视频房间;
  • 如果当前AVContext中已经存在一个音视频房间,调用EnterRoom会同步返回失败。
- (QAVResult) exitRoom

ExitRoom是一个异步操作,内部会连接服务器,申请退出音视频房间。

返回
返回值表示异步操作启动是否成功; 异步操作执行结果通过继承QAVRoomDelegate的委托对象的OnExitRoomComplete()返回。
返回值
QAV_OK启动成功。
其他值启动失败。
- (QAVResult) startContext: (ContextOperationBlock)  block

StartContext是一个异步操作,内部会启动工作线程,创建各种内部对象。

参数
block返回启动Context的结果是成功还是失败
返回
返回值表示异步操作启动是否成功;异步操作执行结果通过回调函数返回。
返回值
QAV_OK启动成功。
其他值启动失败。
备注
  • 只有当异步操作启动成功的时候,才会通过回调函数异步返回执行结果;
  • 当异步操作启动失败的时候,直接通过StartContext的返回值返回错误,不会再触发回调函数;
  • App收到block回调的时候,表示StartContext执行完毕;
  • startContext执行成功之后,App才能进一步调用QAVContext的其他成员函数;
  • startContext执行成功之后,App必须调用stopContext来终止QAVContext对象。
注意
以下两点约定也适用于SDK的其他异步操作接口:
  1. 只有当异步操作启动成功的时候,才会通过回调函数异步返回执行结果;
  2. 当异步操作启动失败的时候,直接通过StartContext的返回值返回错误,不会再触发回调函数。
- (QAVResult) stopContext: (ContextOperationBlock)  block

stopContext是一个异步操作,内部会终止工作线程,销毁各种内部对象。

参数
block返回终止Context的结果是成功还是失败
返回
返回值表示异步操作启动是否成功;异步操作执行结果通过回调函数返回。
返回值
QAV_OK启动成功。
其他值启动失败。
备注
  • App应该设法保证startContext和stopContext的配对调用;
  • stopContext内部如果判断到当前还没退出音视频房间,会自动调用ExitRoom;

属性说明

- (QAVAudioCtrl*) audioCtrl
readnonatomicassign
- (QAVContextConfig*) Config
readwritenonatomicretain
- (QAVRoom*) room
readnonatomicassign
- (QAVVideoCtrl*) videoCtrl
readnonatomicassign