录制

本章节着重介绍实时音频有关录制的内容。网易云实时音频Cocos sdk提供服务端录制方式。 服务端录制需要您联系我们的销售,开通此功能,并且需要在管理中心中成功配置消息抄送服务。实时音频服务端录制目前仅支持点对点音视频通话。假设A和B进行实时音视频通话,服务端录制下来的文件包括:A的纯音频文件(.aac)、A的音视频文件(.mp4)、B的纯音频文件(.aac)、B的音视频文件(.mp4)。如果是纯音频通话,则没有相应的音视频文件,如果您开通了服务端混合录制,则还会生成一个A和B的混合音视频文件(.mp4)。这些录制文件的地址在音视频通话结束之后会通过抄送服务抄送到您的服务器。

服务端录制

服务器录制信息回调

API介绍

当通话连接成功后,在连接成功信息中会带有指定的音视频文件名。如果服务器有录制,会录制该文件。

API原型

typedef std::function SessionStatusCallback;

NIMVideoChatSessionType::kNIMVideoChatSessionTypeConnect File:nim_cpp_vchat.h

参数说明
参数 类型 说明
channel_id long 频道id
code int 结果状态,200代表连接成功
json_extension string 如果成功返回 kNIMVChatVideoRecordFile和kNIMVChatRecordFile
示例
void NIMVChatRequest(string account)
{
    nim::NIMVideoChatMode mode = kNIMVideoChatModeAudio;
    std::string apns_text = "cocos demo";
    Json::Value value;
    Json::Value uids_value(Json::arrayValue);
    uids_value[0] = account;
    value["uids"] = uids_value;
    value["session_id"] = account;
    value["keepcalling"] =  1;
    value["record"] = 1;//开启服务器录制
    value["high_rate"] = 1;
    value["audio_call_proximity"] = 1;
    std::string custom_info = "";
    std::string json_info = value.toStyledString();
    nim::VChat::Start(mode, apns_text, custom_info, json_info);
}
特殊说明

客户端录制

音频文件开始录制

API介绍

开始录制音频文件,一次只允许一个音频录制文件

API原型

static void StartAudioRecord(const std::string& path, AudioRecordCallback cb)

File:NIMVChatAPI.cs

参数说明
参数 类型 说明
path string 暂时无效
cb AudioRecordCallback 结果回调
示例
std::string path = "";
auto cb = [=](bool ret, int code, const std::string& file, std::int64_t time)
{

};
nim::VChat::StartAudioRecord(path, cb);
特殊说明

音频文件结束录制

API介绍

停止录制音频文件

API原型

static void StopAudioRecord(AudioRecordCallback cb);

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
cb AudioRecordCallback 结果回调
示例
auto cb = [=](bool ret, int code, const std::string& file, std::int64_t time)
{

};
nim::VChat::StopAudioRecord(cb);
特殊说明

MP4文件开始录制

API介绍

开始录制MP4,,同一个成员一次只允许一个MP4录制文件,在通话开始的时候才有实际数据

API原型

static void StartRecord(const std::string& path, const std::string& uid, Mp4OptCallback cb);

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
path string 无效参数
uid string uid 录制的成员,如果是自己填空
cb Mp4OptCallback 结果回调
示例
 void DemoTestStartRecord(std::string uid)
 {
    std::string path = "";//暂时无效
    auto cb = [=](bool ret, int code, const std::string& file, std::int64_t time)
    {

    };
    nim::VChat::StartRecord(path, uid, cb);
 }
特殊说明

MP4文件结束录制

API介绍

停止录制MP4

API原型

static void StopRecord(const std::string& uid, Mp4OptCallback cb);

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
uid string uid 录制的成员,如果是自己填空
cb Mp4OptCallback 结果回调
示例
void DemoTestStopRecord(std::string uid)
{
    auto cb = [=](bool ret, int code, const std::string& file, std::int64_t time)
    {

    };
    nim::VChat::StopRecord(uid, cb);
}
特殊说明