互动直播

8.1 创建互动直播

创建XHLiveManager对象

对象所属类需要实现ILiveListener接口
XHLiveManager::addChatroomGetListListener(this);
m_pLiveManager = new XHLiveManager(this);

8.3 获取直播列表说明

无AEC使用方法

/**
* 获取直播列表
*/
void getLiveList()
{
list<ChatroomInfo> listData;
XHLiveManager::getLiveList(m_pUserManager, "", CHATROOM_LIST_TYPE_LIVE,listData);
}
调用该方法后会相应chatroomQueryAllListOK回调函数
/*
* 保存直播
*/
string strInfo = "{\"id\":\"";
strInfo += strLiveId;
strInfo += "\",\"creator\":\"";
strInfo += m_pUserManager->m_ServiceParam.m_strUserId;
strInfo += "\",\"name\":\"";
strInfo += strName.GetBuffer(0);
strInfo += "\"}";
m_pLiveManager->saveToList(m_pUserManager->m_ServiceParam.m_strUserId, CHATROOM_LIST_TYPE_LIVE, strLiveId, strInfo);

AEC使用方法

/**
* 获取直播列表
*/
void getLiveList()
{
list<ChatroomInfo> listData;
CInterfaceUrls::demoQueryList(strListType, listData);
}
/*
* 保存直播
*/
string strInfo = "{\"id\":\"";
strInfo += strLiveId;
strInfo += "\",\"creator\":\"";
strInfo += m_pUserManager->m_ServiceParam.m_strUserId;
strInfo += "\",\"name\":\"";
strInfo += strName.GetBuffer(0);
strInfo += "\"}";
CInterfaceUrls::demoSaveToList(pUserManager->m_ServiceParam.m_strUserId, CHATROOM_LIST_TYPE_LIVE, strLiveId, strInfo);

8.4 XHLiveManager API 说明

/**
* 获取直播列表
* @param strUserId用户ID
* @param listType 列表类型
* @return listData 返回列表
*/
static void getLiveList(CUserManager* pUserManager, string strUserId, string listType, list<ChatroomInfo>& listData);

/**
* 创建直播
*/
string createLive(string strName, int chatroomType, int channelType);

/**
* 开始直播
* @param strLiveID ID
*/
bool startLive(string strLiveID);

/*
* 全局参数设置
*/
void globalSetting(int w, int h, int fps, int bitrate);

/*
* 开启直播编码器
*/
bool startEncoder(int audioSampleRateInHz, int audioChannels, int audioBitRate, unsigned char* ppsData,int ppsDataLen, unsigned char* spsData,int spsDataLen);

/**
* 保存到列表
* @param userId
* @param type
* @param liveId
* @param data
*/
bool saveToList(string userId, int type, string liveId, string data);

/**
* 从列表删除
* @param userId 用户ID
* @param type 类型
* @param liveId liveID
*/
void deleteFromList(string userId, int type, string liveId);

/**
* 插入视频数据
* @param videoData
* @param dataLen
* @param isBig
*/
void insertVideoRaw(unsigned char* videoData, int dataLen, int isBig);