阿里云RTC提供背景替换和虚化功能,您可以根据实际场景使用该功能完善RTC使用体验。通过阅读本文,您可以了解到虚拟背景的集成与实现方法。
前提条件
环境中已安装Visual Studio 2010或以上版本。
环境要求
Windows端具体环境要求,更多信息,请参见支持的平台。
使用限制
背景替换和虚化功能不能同时开启,使用时只能开启其一。
集成开发环境
功能实现——背景替换
您可以通过调用EnableBackgroundExchange实现背景替换功能,如下所示:
BackgroundExchangeDlg dlg;
dlg.enableBgExchangeCallback = [this, &dlg]
{
CString imagePath = dlg.mBgImagePath;
if (PathFileExists(imagePath))
{
std::string filePath = CT2A(imagePath);
AliEngineBokehScaleModel scaleMode = (dlg.mBgExchangeMode != 0 ? AliEngineBokehScaleModelFill : AliEngineBokehScaleModelCrop);
mpEngine->EnableBackgroundExchange(true,filePath.c_str(), scaleMode);
}
};
dlg.disableBgExchangeCallback = [this, &dlg]
{
AliEngineBokehScaleModel scaleMode = (dlg.mBgExchangeMode != 0 ? AliEngineBokehScaleModelFill : AliEngineBokehScaleModelCrop);
mpEngine->EnableBackgroundExchange(false, "", scaleMode);
};
dlg.DoModal();
功能实现——背景虚化
您可以通过调用EnableBackgroundBlur实现背景虚化功能,如下所示:
BackgroundBlurDlg dlg;
dlg.mBlurValue = m_nBackgroundBlurDegree;
dlg.enableBackgroundBlurCallback = [this, &dlg]
{
m_nBackgroundBlurDegree = dlg.mBlurValue;
mpEngine->EnableBackgroundBlur(true, m_nBackgroundBlurDegree);
};
dlg.disableBackgroundBlurCallback = [this]
{
mpEngine->EnableBackgroundBlur(false, 0);
};
dlg.DoModal();