一对一视频通话(VOIP)

6.1 创建VOIP
创建CVoipManager对象
添加回调函数指针

对象所属类需要实现IVoipManagerListener接口
m_pVoipManager = new XHVoipManager(this);


6.2 回调函数说明

/**
* 被叫方响应
* 被叫方收到主叫方的呼叫
* @param fromID
*/
virtual void onCalling(string fromID);

/**
* 被叫方响应语音呼叫
* 被叫方收到主叫方的呼叫
* @param fromID
*/
virtual void onAudioCalling(string fromID);

/**
* 被叫方响应
* 主叫方在被叫方接听之前挂断(通话被取消)
* @param fromID
*/
virtual void onCancled(string fromID);

/**
* 主叫方响应
* 被叫方拒绝接通(通话被拒绝)
* @param fromID
*/
virtual void onRefused(string fromID);

/**
* 主叫方响应
* 被叫方线路忙(对方通话中)
* @param fromID
*/
virtual void onBusy(string fromID);

/**
* 通话中错过的来电
*/
virtual void onMiss(CIMMessage* pMsg);

/**
* 主叫方响应
* 被叫方接通(通话开始)
* @param fromID
*/
virtual void onConnected(string fromID);

/**
* 对方已经挂断
* @param fromID
*/
virtual void onHangup(string fromID);

/**
* voip报错
* @param errorCode
*/
virtual void onError(string errorCode);

/**
* 收到实时数据
* @param data
*/
virtual void onReceiveRealtimeData(uint8_t* data, int length);

/**
* 收到视频数据
* @param data
*/
virtual int getVideoRaw(string strUserId, int w, int h, uint8_t* videoData, int videoDataLen);

/**
* 数据传输模式切换
* @param state
*/
virtual void onTransStateChanged(int state);

6.3 XHVoipManager API 说明

/**
* 设置媒体类型(音视频,音频,视频 三种可选)
* @param mediaTypeEnum 媒体类型
*/
void setRtcMediaType(int mediaTypeEnum);

/**
* 获取媒体类型(音视频,音频,视频 三种可选)
*/
int getRtcMediaType();

/**
* 主叫方调用
* 发起通话
* @param strTargetId 对方ID
*/
bool call(string strTargetId);

/**
* 主叫方调用
* 发起语音通话
* @param strTargetId 对方ID
*/
bool audioCall(string strTargetId);

/**
* 主叫方调用
* 对方接听或拒绝前 主叫方主动取消呼叫
*/
void cancel();

/**
* 被叫方调用
* 同意跟主叫方通话
* @param fromID
*/
void accept(string fromID);

/**
* 被叫方调用
* 拒绝跟主叫方通话
*/
void refuse();

/**
* 双方都可调用
* 挂断
*/
void hangup(int isActive);

/**
* 插入音频数据
* @param audioData
* @param dataLen
*/
void insertAudioRaw(uint8_t* audioData, int dataLen);
/**
* 插入视频数据
* @param videoData
* @param dataLen
* @param isBig
*/
void insertVideoRaw(uint8_t* videoData, int dataLen, int isBig);
/**
* 裁剪视频数据
*/
int cropVideoRawNV12(int w, int h, uint8_t* videoData, int dataLen, int yuvProcessPlan, int rotation, int needMirror, uint8_t* outVideoDataBig, uint8_t* outVideoDataSmall);
/**
* 查询音频数据
*/
void querySoundData(uint8_t** pData, int* nLength);