本地服务端录制 SDK 支持将房间内的所有用户的音视频流混合成一个画面再录制,集成 SDK 后,即可开始使用 SDK 的混流录制功能。
ga01596a1c8 之前的 ZEGO 本地服务端录制 SDK 版本(2022-03-23 之前发布)需要在 ZEGO 控制台 申请有效的 AppID,并联系 ZEGO 技术支持获取 AppSign。若您需要升级鉴权方式,可参考 如何从 AppSign 鉴权升级为 Token 鉴权。
在初始化之前需要先继承实现 ICallback,并设置回调监听。
接口原型:
ZEGO_API bool SetCallback(ICallback* pCB)
参数:
pCB:回调对象指针。
备注:
在初始化 SDK 前可以根据需要调用如下接口:
SetLogDirAndSize 设置日志文件路径和大小
调用 InitSDK 接口初始化 SDK,将申请到的 AppID 传入参数 “uiAppID”。
接口原型:
ZEGO_API bool InitSDK(unsigned int uiAppID)
参数:
uiAppID
:ZEGO 派发的数字 ID,各个开发者的唯一标识。
异步回调接口:
class ICallback
{
public:
virtual void OnInitSDK(int errorCode) {}
}
errorCode == 0 表示初始化成功。
在登录房间之前调用 SetCustomToken 接口将 Token 传入 SDK。
接口原型:
ZEGO_API void SetCustomToken(const char *thirdPartyToken)
参数:
thirdPartyToken
:鉴权 Token。
录制之前需要先登录房间。
接口原型:
ZEGO_API bool LoginRoom(const char* pszRoomID)
参数:
pszRoomID
:房间 ID,正在推流的房间的 ID。
异步回调接口:
class ICallback
{
public:
virtual void OnLoginRoom(int errorCode, const char *pszRoomID) = 0;
}
接口原型:
ZEGO_API bool StartRecordMixStream(ZegoMixStreamRecordConfig* pConfig)
参数:
pConfig
:混流录制配置,请参考 ZegoMixStreamRecordConfig。
异步回调接口:
class ICallback
{
public:
virtual void OnStreamRecordBegin(const char* pszStreamID, const char *pszPathAndName) = 0;
virtual void OnMixStreamRecordUpdate(const char** ppszStreamID, int nStreamCount) = 0;
}
录制启动成功会收到 OnStreamRecordBegin
回调,成功拉到有音视频数据的流时会收到 OnMixStreamRecordUpdate
回调。
备注:
若需要同时录制单流和混流,在开始录制之前调用 EnableSingleAndMixRecordMode 启用单流混流同时录制模式;此种模式比较消耗系统资源,且只能先启动混流录制,然后再启动单流录制;结束混流录制时也会同时结束所有的单流录制。此种模式下,SDK 有一个限制,混流录制会混入所有单流录制正在录制的流,即使没有将单流录制中的某单流作为混流的输入流,若此单流有音频,这个音频也会被混流录制给录制下来。
当需要增加输入流、原输入流变更或者混流输出配置变更时,重新构造混流配置并调用更新混流配置接口。
接口原型:
ZEGO_API bool UpdateInputStreamConfig(ZegoStreamConfig* pInputStream, int nInputStreamCount)
异步回调接口:
class ICallback
{
public:
virtual void OnMixStreamRecordUpdate(const char** ppszStreamID, int nStreamCount) = 0;
}
混流成功后会返回包含参与混流录制的单流 ID 列表的回调,只包括成功拉到数据的流 ID。 注意:参与混流录制的流发生变化比如开始录制、录制中流发生异常等都会收到此回调。
接口原型:
ZEGO_API bool StopRecordMixStream()
异步回调接口:
class ICallback
{
public:
virtual void OnStreamRecordEnd(const char* pszStreamID, const char *pszPathAndName, RecordEndReason reason) = 0;
}
备注:
建议在不需要再录制的时候,做以下处理:
LIVEROOM::SetCallback(nullptr);
去掉回调监听。方法 | 描述 |
---|---|
SetCallback | 设置回调监听 |
InitSDK | 初始化 SDK |
LoginRoom | 登录房间 |
GetMaxRecordCount | 获取 SDK 支持的最大同时录制流数 |
EnableSingleAndMixRecordMode | 设置是否启用单流混流同时录制模式,启用该模式比较消耗系统资源 |
StartRecordMixStream | 开始混流录制 |
UpdateInputStreamConfig | 更新混流录制输入流配置 |
StopRecordMixStream | 停止混流录制 |
SetMuxerOutType | 设置录制数据输出方式 |
SetLogDirAndSize | 设置 SDK log 路径和单个 log 文件大小 |
SetConfig | 设置配置信息 |
SetMuxerCacheSize | 设置文件落地前的缓存大小(64KB~1MB) |
GetSDKVersion | 获取 SDK 版本 |
UploadLog | 上传 log 文件到 ZEGO 后台 |
UnInitSDK | 反初始化 SDK |
LogoutRoom | 退出房间 |
联系我们
文档反馈