《录屏系统》

录屏分享类 SDK 针对手游录像和快速分享提供了一整套的解决方案。支持基于 OpenGL ES 的游戏引擎,比如 Cocos2d-x、 Unity3d 以及其它的游戏引擎。

相关接口

设置录屏分享回调监听

录屏系统存在回调信息,需要设置监听。

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec) return;
rec->setResultListener(this);

开发者需要重写 onRECResult 回调方法

class REC:public RECResultListener
{
public:
     virtual void onRECResult(RECResultCode ret, const char* msg);
};
void REC::onRECResult(RECResultCode ret, const char* msg)
{
    printf("onRECResult %d\n",ret);
    switch(ret)
    {
    case kRECInitSuccess://初始化成功
        printf("kRECInitSuccess\n");
        break;
    case kRECInitFail://初始化失败
        printf("kRECInitFail\n");
        break;
    case kRECStartRecording://开始录制
        printf("kRECStartRecording \n");
        break;
    case kRECStopRecording://结束录制
        printf("kRECStopRecording \n");
        break;
    case kRECPauseRecording://暂停录制
        printf("kRECPauseRecording \n");
        break;
    case kRECResumeRecording://恢复录制
        printf("kRECResumeRecording \n");
        break;
    case kRECEnterSDKPage://进入SDK页面
        printf("kRECEnterSDKPage \n");
        break;
    case kRECQuitSDKPage://退出SDK页面
        printf("kRECQuitSDKPage \n");
        break;
    case kRECShareSuccess://视频分享成功
        printf("kRECShareSuccess \n");
        break;
   case kRECShareFail://视频分享失败
        printf("kRECShareFail\n");
        break;
    default:
        break;
    }

}

开始录制

void startRecording();
接口说明:
开始视频录制
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec) return;
rec->startRecording();

结束录制

void stopRecording();
接口说明:
结束视频录制
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec) return;
rec->stopRecording();

分享

void share(std::map<std::string, std::string> info);
接口说明:
分享。
参数信息:

参数 参数说明
Video_Title 视频标题
Video_Desc 视频描述

范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec) return;
std::map<std::string, std::string> info;
info["Video_Desc"] = "RECSDK是一个神奇的SDK";
info["Video_Title"] = "RECSDK";
rec->share(info);

暂停录制

void pauseRecording();
接口说明:
暂停视频录制
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("pauseRecording")) return;
rec->callFuncWithParam("pauseRecording",NULL);

恢复录制

void resumeRecording();
接口说明:
恢复视频录制
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("resumeRecording")) return;
rec->callFuncWithParam("resumeRecording",NULL);

设备是否支持录制

bool isAvailable();
接口说明:
判断设备是否支持,支持返回 ture,否则返回 false
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("isAvailable")) return;
bool result = rec->callBoolFuncWithParam("isAvailable",NULL);

获取录制状态

bool isRecording();
接口说明:
当前视频是否正在录制,true:正在录制,false:未录制
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("isRecording")) return;
bool result = rec->callBoolFuncWithParam("isRecording",NULL);

显示工具条

void showToolBar();
接口说明:
显示工具条界面
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("showToolBar")) return;
rec->callFuncWithParam("showToolBar",NULL);

隐藏工具条

void hideToolBar();
接口说明:
隐藏工具条界面
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("hideToolBar")) return;
rec->callFuncWithParam("hideToolBar",NULL);

显示视频中心

void showVideoCenter();
接口说明:
显示视频中心
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("showVideoCenter")) return;
rec->callFuncWithParam("showVideoCenter",NULL);

显示平台中心

void enterPlatform();
接口说明:
进入平台中心
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("enterPlatform")) return;
rec->callFuncWithParam("enterPlatform",NULL);

设置视频相关数据

void setMetaData(std::map<std::string, std::string> data);
接口说明:
设置视频相关数据,建议先检查是否是正在录制
范例:

ProtocolREC * rec = AgentManager::getInstance()->getRECPlugin();
if(!rec || !rec->isFunctionSupported("setMetaData")) return;
std::map<std::string, std::string> info;
info["key"] = "value";
PluginParam data(info);
rec->callFuncWithParam("setMetaData",&data, NULL);

【评论区】