FScreenCaptureSourceInfo
- Unreal Blueprint
更新时间不可用
可共享窗口或屏幕的信息。在 IScreenCaptureSourceList 中返回。
USTRUCT(BlueprintType)
struct FScreenCaptureSourceInfo {
GENERATED_BODY()
public:
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
FENUMWRAP_ScreenCaptureSourceType type = FENUMWRAP_ScreenCaptureSourceType();
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
int64 sourceId = 0;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
FString sourceName = "";
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
FThumbImageBuffer thumbImage = FThumbImageBuffer();
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
FThumbImageBuffer iconImage = FThumbImageBuffer();
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
FString processPath = "";
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
FString sourceTitle = "";
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
bool primaryMonitor = false;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
bool isOccluded = false;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
FRectangle position = FRectangle();
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
bool minimizeWindow = false;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo")
int64 sourceDisplayId = 0;
#if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
FScreenCaptureSourceInfo(){}
FScreenCaptureSourceInfo(const agora::rtc::ScreenCaptureSourceInfo & AgoraData){
type = AgoraData.type;
sourceId = UABT::FromViewToInt(AgoraData.sourceId);
sourceName = UTF8_TO_TCHAR(AgoraData.sourceName);
thumbImage = FThumbImageBuffer(AgoraData.thumbImage);
iconImage = FThumbImageBuffer(AgoraData.iconImage);
processPath = UTF8_TO_TCHAR(AgoraData.processPath);
sourceTitle = UTF8_TO_TCHAR(AgoraData.sourceTitle);
primaryMonitor = AgoraData.primaryMonitor;
isOccluded = AgoraData.isOccluded;
position = FRectangle(AgoraData.position);
#if defined(_WIN32)
minimizeWindow = AgoraData.minimizeWindow;
sourceDisplayId = UABT::FromViewToInt(AgoraData.sourceDisplayId);
#endif
}
agora::rtc::ScreenCaptureSourceInfo CreateAgoraData() const {
agora::rtc::ScreenCaptureSourceInfo AgoraData;
AgoraData.type = static_cast<agora::rtc::ScreenCaptureSourceType>(type.GetRawValue());
AgoraData.sourceId = UABT::ToView(sourceId);
SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.sourceName, sourceName)
AgoraData.thumbImage = thumbImage.CreateAgoraData();
AgoraData.iconImage = iconImage.CreateAgoraData();
SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.processPath, processPath)
SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.sourceTitle, sourceTitle)
AgoraData.primaryMonitor = primaryMonitor;
AgoraData.isOccluded = isOccluded;
AgoraData.position = position.CreateAgoraData();
#if defined(_WIN32)
AgoraData.minimizeWindow = minimizeWindow;
AgoraData.sourceDisplayId = UABT::ToView(sourceDisplayId);
#endif
return AgoraData;
}
void FreeAgoraData(agora::rtc::ScreenCaptureSourceInfo & AgoraData) const {
SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.sourceName)
thumbImage.FreeAgoraData(AgoraData.thumbImage);
thumbImage.FreeAgoraData(AgoraData.iconImage);
SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.processPath)
SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.sourceTitle)
position.FreeAgoraData(AgoraData.position);
}
#endif
};属性
| 参数名 | 描述 |
|---|---|
type | 共享目标的类型。详见 FENUMWRAP_ScreenCaptureSourceType。 |
sourceId | |
sourceName | |
thumbImage | 缩略图的图像内容。详见 FThumbImageBuffer。 |
iconImage | 图标的图像内容。详见 FThumbImageBuffer。 |
processPath | |
sourceTitle | |
primaryMonitor | |
position | 窗口相对于整个屏幕空间(包含所有可共享屏幕)的位置。详见 FRectangle。 |
minimizeWindow | |
sourceDisplayId |