From 0fb944547d62359d0ab6295f6f594c5f4c867b5e Mon Sep 17 00:00:00 2001
From: Cilla-luodan <85477033+Cilla-luodan@users.noreply.github.com>
Date: Wed, 14 Aug 2024 17:16:29 +0800
Subject: [PATCH 1/5] temp
---
...nthandler_onextensionerrorwithcontext.dita | 20 +-
...nthandler_onextensioneventwithcontext.dita | 19 +-
...handler_onextensionstartedwithcontext.dita | 13 +-
...handler_onextensionstoppedwithcontext.dita | 12 +-
.../RTC-NG/API/class_channelmediaoptions.dita | 638 +++++++++++++++++-
dita/RTC-NG/API/rtc_api_data_type.dita | 521 +++++++-------
dita/RTC-NG/RTC_NG_API_Electron.ditamap | 2 -
dita/RTC-NG/RTC_NG_API_RN.ditamap | 2 -
.../config/keys-rtc-ng-api-electron.ditamap | 56 +-
dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap | 56 +-
10 files changed, 994 insertions(+), 345 deletions(-)
diff --git a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita
index 34162981eca..4b6e6980536 100644
--- a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita
+++ b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita
@@ -24,16 +24,14 @@
(void)message;
}
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnExtensionError, FString, provider, FString, extension, int, error, FString, message);
- onExtensionError?(
- provider: string,
- extension: string,
+ onExtensionErrorWithContext?(
+ context: ExtensionContext,
error: number,
message: string
): void;
public virtual void OnExtensionErrorWithContext(ExtensionContext context, int error, string message){}
- onExtensionError?(
- provider: string,
- extension: string,
+ onExtensionErrorWithContext?(
+ context: ExtensionContext,
error: number,
message: string
): void;
@@ -48,18 +46,10 @@
参数
- context
+ context
extContext
插件上下文信息,详见 。
-
-
-
-
-
- extension
- 插件的名称。
-
error
错误码。详见插件服务商提供的插件文档。
diff --git a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita
index 92f48f83993..e087c9404bb 100644
--- a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita
+++ b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita
@@ -24,16 +24,14 @@
(void)value;
}
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnExtensionEvent, FString, provider, FString, extension, FString, key, FString, value);
- onExtensionEvent?(
- provider: string,
- extension: string,
+ onExtensionEventWithContext?(
+ context: ExtensionContext,
key: string,
value: string
): void;
public virtual void OnExtensionEventWithContext(ExtensionContext context, string key, string value){}
- onExtensionEvent?(
- provider: string,
- extension: string,
+ onExtensionEventWithContext?(
+ context: ExtensionContext,
key: string,
value: string
): void;
@@ -51,15 +49,6 @@
-
-
-
-
-
- extension
- extName
- 插件名称。
-
diff --git a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita
index 469db444f3b..98fc6795d03 100644
--- a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita
+++ b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita
@@ -20,9 +20,11 @@
(void)context;
}
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnExtensionStarted, FString, provider, FString, extension);
- onExtensionStarted?(provider: string, extension: string): void;
public virtual void OnExtensionEventWithContext(ExtensionContext context, string key, string value){ }
onExtensionStarted?(provider: string, extension: string): void;
+ onExtensionStartedWithContext?(context: ExtensionContext): void;
+ public virtual void OnExtensionEventWithContext(ExtensionContext context, string key, string value){ }
+ onExtensionStartedWithContext?(context: ExtensionContext): void;
final void Function(ExtensionContext context)? onExtensionStartedWithContext;
@@ -36,15 +38,6 @@
-
+
public class ChannelMediaOptions {
public Boolean publishCameraTrack;
public Boolean publishSecondaryCameraTrack;
@@ -573,9 +573,6 @@ class ChannelMediaOptions {
@JsonKey(name: 'publishMixedAudioTrack')
final bool? publishMixedAudioTrack;
- @JsonKey(name: 'publishLipSyncTrack')
- final bool? publishLipSyncTrack;
-
@JsonKey(name: 'autoSubscribeAudio')
final bool? autoSubscribeAudio;
@@ -633,7 +630,638 @@ class ChannelMediaOptions {
Map<String, dynamic> toJson() => _$ChannelMediaOptionsToJson(this);
}
-
+
+ public class ChannelMediaOptions {
+ public Boolean publishCameraTrack;
+ public Boolean publishSecondaryCameraTrack;
+ public Boolean publishThirdCameraTrack;
+ public Boolean publishFourthCameraTrack;
+ public Boolean publishMicrophoneTrack;
+ public Boolean publishScreenCaptureVideo;
+ public Boolean publishScreenCaptureAudio;
+ public Boolean publishCustomAudioTrack;
+ public Integer publishCustomAudioTrackId;
+ public Boolean publishCustomVideoTrack;
+ public Boolean publishEncodedVideoTrack;
+ public Boolean publishMediaPlayerAudioTrack;
+ public Boolean publishMediaPlayerVideoTrack;
+ public Boolean publishTranscodedVideoTrack;
+ public Boolean publishLipSyncTrack;
+ public Boolean autoSubscribeAudio;
+ public Boolean autoSubscribeVideo;
+ public Boolean enableAudioRecordingOrPlayout;
+ public Integer publishMediaPlayerId;
+ public Integer clientRoleType;
+ public Integer audienceLatencyLevel;
+ public Integer defaultVideoStreamType;
+ public Integer channelProfile;
+ public Integer mediaPlayerAudioDelayMs;
+ public String token;
+ public Boolean enableBuiltInMediaEncryption;
+ public Boolean publishRhythmPlayerTrack;
+ public Boolean isInteractiveAudience;
+ public Integer customVideoTrackId;
+ public Boolean isAudioFilterable;
+ }
+ export class ChannelMediaOptions {
+
+ public publishCameraTrack?:boolean;
+
+ public publishSecondaryCameraTrack?:boolean;
+
+ public publishMicrophoneTrack?:boolean;
+
+ public publishScreenCaptureVideo?:boolean;
+
+ public publishScreenCaptureAudio?:boolean;
+
+ public publishCustomAudioTrack?:boolean;
+
+ public publishCustomAudioTrackId?:number;
+
+ public publishCustomVideoTrack?:boolean;
+
+ public publishEncodedVideoTrack?:boolean;
+
+ public publishMediaPlayerAudioTrack?:boolean;
+
+ public publishMediaPlayerVideoTrack?:boolean;
+
+ public publishTranscodedVideoTrack?:boolean;
+
+ public publishMixedAudioTrack?:boolean;
+
+ public autoSubscribeAudio?:boolean;
+
+ public autoSubscribeVideo?:boolean;
+
+ public enableAudioRecordingOrPlayout?:boolean;
+
+ public publishMediaPlayerId?:number;
+
+ public clientRoleType?:number;
+
+ public audienceLatencyLevel?:number;
+
+ public defaultVideoStreamType?:number;
+
+ public channelProfile?:number;
+
+ public audioDelayMs?:number;
+
+ public mediaPlayerAudioDelayMs?:number;
+
+ public enableBuiltInMediaEncryption?:boolean;
+
+ public publishRhythmPlayerTrack?:boolean;
+
+ public isInteractiveAudience?:boolean;
+
+ public customVideoTrackId?:number;
+
+ public isAudioFilterable?:boolean;
+
+ public startPreview?:boolean;
+ public constructor() {
+ }
+ }
+ __attribute__((visibility("default"))) @interface AgoraRtcChannelMediaOptions : NSObject
+ @property(assign, nonatomic) BOOL publishCameraTrack;
+ @property(assign, nonatomic) BOOL publishSecondaryCameraTrack;
+ @property(assign, nonatomic) BOOL publishMicrophoneTrack;
+ #if TARGET_OS_IPHONE
+ @property(assign, nonatomic) BOOL publishScreenCaptureVideo;
+ @property(assign, nonatomic) BOOL publishScreenCaptureAudio;
+ #elif TARGET_OS_MAC
+ @property(assign, nonatomic) BOOL publishThirdCameraTrack;
+ @property(assign, nonatomic) BOOL publishFourthCameraTrack;
+ @property(assign, nonatomic) BOOL publishScreenTrack;
+ @property(assign, nonatomic) BOOL publishSecondaryScreenTrack;
+ @property(assign, nonatomic) BOOL publishThirdScreenTrack;
+ @property(assign, nonatomic) BOOL publishFourthScreenTrack;
+ #endif
+ @property(assign, nonatomic) BOOL publishCustomAudioTrack;
+ @property(assign, nonatomic) NSInteger publishCustomAudioTrackId;
+
+ @property(assign, nonatomic) BOOL publishCustomVideoTrack;
+ @property(assign, nonatomic) BOOL publishEncodedVideoTrack;
+ @property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack;
+ @property(assign, nonatomic) BOOL publishMediaPlayerVideoTrack;
+ @property(assign, nonatomic) BOOL publishTranscodedVideoTrack;
+ @property(assign, nonatomic) BOOL publishLipSyncTrack;
+ @property(assign, nonatomic) BOOL autoSubscribeAudio;
+ @property(assign, nonatomic) BOOL autoSubscribeVideo;
+ @property(assign, nonatomic) BOOL enableAudioRecordingOrPlayout;
+ @property(assign, nonatomic) NSInteger publishMediaPlayerId;
+ @property(assign, nonatomic) AgoraClientRole clientRoleType;
+ @property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel;
+ @property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType;
+ @property(assign, nonatomic) AgoraChannelProfile channelProfile;
+ @property(copy, nonatomic) NSString * _Nullable token;
+ @property(assign, nonatomic) BOOL enableBuiltInMediaEncryption;
+
+ @property(assign, nonatomic) BOOL publishRhythmPlayerTrack;
+ @property(assign, nonatomic) BOOL isInteractiveAudience;
+
+ @property(assign, nonatomic) NSInteger customVideoTrackId;
+
+ @property(assign, nonatomic) BOOL isAudioFilterable;
+
+ @end
+ struct ChannelMediaOptions {
+ Optional<bool> publishCameraTrack;
+ Optional<bool> publishSecondaryCameraTrack;
+ Optional<bool> publishThirdCameraTrack;
+ Optional<bool> publishFourthCameraTrack;
+ Optional<bool> publishMicrophoneTrack;
+
+ #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
+ Optional<bool> publishScreenCaptureVideo;
+ Optional<bool> publishScreenCaptureAudio;
+ #else
+ Optional<bool> publishScreenTrack;
+ Optional<bool> publishSecondaryScreenTrack;
+ Optional<bool> publishThirdScreenTrack;
+ Optional<bool> publishFourthScreenTrack;
+ #endif
+
+ Optional<bool> publishCustomAudioTrack;
+ Optional<int> publishCustomAudioTrackId;
+ Optional<bool> publishCustomVideoTrack;
+ Optional<bool> publishEncodedVideoTrack;
+ Optional<bool> publishMediaPlayerAudioTrack;
+ Optional<bool> publishMediaPlayerVideoTrack;
+ Optional<bool> publishTranscodedVideoTrack;
+ Optional<bool> publishLipSyncTrack;
+ Optional<bool> autoSubscribeAudio;
+ Optional<bool> autoSubscribeVideo;
+ Optional<bool> enableAudioRecordingOrPlayout;
+ Optional<int> publishMediaPlayerId;
+ Optional<CLIENT_ROLE_TYPE> clientRoleType;
+ Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel;
+ Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType;
+ Optional<CHANNEL_PROFILE_TYPE> channelProfile;
+ Optional<const char*> token;
+ Optional<bool> enableBuiltInMediaEncryption;
+ Optional<bool> publishRhythmPlayerTrack;
+ Optional<bool> isInteractiveAudience;
+
+ Optional<video_track_id_t> customVideoTrackId;
+
+ Optional<bool> isAudioFilterable;
+
+ ChannelMediaOptions() {}
+ ~ChannelMediaOptions() {}
+ USTRUCT(BlueprintType)
+ struct FChannelMediaOptions
+ {
+ GENERATED_BODY()
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishCameraTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishSecondaryCameraTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishMicrophoneTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishScreenCaptureVideo;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishScreenCaptureAudio;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishScreenTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishSecondaryScreenTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishCustomAudioTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool publishCustomAudioTrackId_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ int publishCustomAudioTrackId;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishCustomVideoTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishEncodedVideoTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishMediaPlayerAudioTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishMediaPlayerVideoTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishTranscodedVideoTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL autoSubscribeAudio;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL autoSubscribeVideo;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL enableAudioRecordingOrPlayout;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool publishMediaPlayerId_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ int publishMediaPlayerId;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool clientRoleType_SetValue = true;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ ECLIENT_ROLE_TYPE clientRoleType = ECLIENT_ROLE_TYPE::CLIENT_ROLE_BROADCASTER;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool audienceLatencyLevel_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ EAUDIENCE_LATENCY_LEVEL_TYPE audienceLatencyLevel;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool defaultVideoStreamType_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ EVIDEO_STREAM_TYPE defaultVideoStreamType;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool channelProfile_SetValue = true;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ ECHANNEL_PROFILE_TYPE channelProfile = ECHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool audioDelayMs_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ int audioDelayMs;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool mediaPlayerAudioDelayMs_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ int mediaPlayerAudioDelayMs;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool token_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ FString token;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL enableBuiltInMediaEncryption;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL publishRhythmPlayerTrack;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL isInteractiveAudience;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ bool customVideoTrackId_SetValue;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ int64 customVideoTrackId;
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions")
+ AGORAOPTIONAL isAudioFilterable;
+ };
+ struct ChannelMediaOptions {
+ Optional<bool> publishCameraTrack;
+ Optional<bool> publishSecondaryCameraTrack;
+ Optional<bool> publishMicrophoneTrack;
+
+ #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
+ Optional<bool> publishScreenCaptureVideo;
+ Optional<bool> publishScreenCaptureAudio;
+ #else
+ Optional<bool> publishScreenTrack;
+ Optional<bool> publishSecondaryScreenTrack;
+ #endif
+
+ Optional<bool> publishCustomAudioTrack;
+ Optional<int> publishCustomAudioTrackId;
+ Optional<bool> publishCustomVideoTrack;
+ Optional<bool> publishEncodedVideoTrack;
+ Optional<bool> publishMediaPlayerAudioTrack;
+ Optional<bool> publishMediaPlayerVideoTrack;
+ Optional<bool> publishTranscodedVideoTrack;
+ Optional<bool> autoSubscribeAudio;
+ Optional<bool> autoSubscribeVideo;
+ Optional<bool> enableAudioRecordingOrPlayout;
+ Optional<int> publishMediaPlayerId;
+ Optional<CLIENT_ROLE_TYPE> clientRoleType;
+ Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel;
+ Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType;
+ Optional<CHANNEL_PROFILE_TYPE> channelProfile;
+ Optional<const char*> token;
+ Optional<bool> enableBuiltInMediaEncryption;
+ Optional<bool> publishRhythmPlayerTrack;
+ Optional<bool> isInteractiveAudience;
+
+ Optional<video_track_id_t> customVideoTrackId;
+
+ Optional<bool> isAudioFilterable;
+
+ ChannelMediaOptions() {}
+ ~ChannelMediaOptions() {}
+ export class ChannelMediaOptions {
+
+ publishCameraTrack?: boolean;
+
+ publishSecondaryCameraTrack?: boolean;
+
+ publishThirdCameraTrack?: boolean;
+
+ publishFourthCameraTrack?: boolean;
+
+ publishMicrophoneTrack?: boolean;
+
+ publishScreenTrack?: boolean;
+
+ publishSecondaryScreenTrack?: boolean;
+
+ publishThirdScreenTrack?: boolean;
+
+ publishFourthScreenTrack?: boolean;
+
+ publishCustomAudioTrack?: boolean;
+
+ publishCustomAudioTrackId?: number;
+
+ publishCustomVideoTrack?: boolean;
+
+ publishEncodedVideoTrack?: boolean;
+
+ publishMediaPlayerAudioTrack?: boolean;
+
+ publishMediaPlayerVideoTrack?: boolean;
+
+ publishTranscodedVideoTrack?: boolean;
+
+ publishLipSyncTrack?: boolean;
+
+ autoSubscribeAudio?: boolean;
+
+ autoSubscribeVideo?: boolean;
+
+ enableAudioRecordingOrPlayout?: boolean;
+
+ publishMediaPlayerId?: number;
+
+ clientRoleType?: ClientRoleType;
+
+ audienceLatencyLevel?: AudienceLatencyLevelType;
+
+ defaultVideoStreamType?: VideoStreamType;
+
+ channelProfile?: ChannelProfileType;
+
+ token?: string;
+
+ enableBuiltInMediaEncryption?: boolean;
+
+ publishRhythmPlayerTrack?: boolean;
+
+ isInteractiveAudience?: boolean;
+
+ customVideoTrackId?: number;
+
+ isAudioFilterable?: boolean;
+ }
+ public class ChannelMediaOptions : OptionalJsonParse
+ {
+ public Optional<bool> publishCameraTrack = new Optional<bool>();
+ public Optional<bool> publishSecondaryCameraTrack = new Optional<bool>();
+ public Optional<bool> publishThirdCameraTrack = new Optional<bool>();
+ public Optional<bool> publishFourthCameraTrack = new Optional<bool>();
+ public Optional<bool> publishMicrophoneTrack = new Optional<bool>();
+ public Optional<bool> publishScreenCaptureVideo = new Optional<bool>();
+ public Optional<bool> publishScreenCaptureAudio = new Optional<bool>();
+ public Optional<bool> publishScreenTrack = new Optional<bool>();
+ public Optional<bool> publishSecondaryScreenTrack = new Optional<bool>();
+ public Optional<bool> publishThirdScreenTrack = new Optional<bool>();
+ public Optional<bool> publishFourthScreenTrack = new Optional<bool>();
+ public Optional<bool> publishCustomAudioTrack = new Optional<bool>();
+ public Optional<int> publishCustomAudioTrackId = new Optional<int>();
+ public Optional<bool> publishCustomVideoTrack = new Optional<bool>();
+ public Optional<bool> publishEncodedVideoTrack = new Optional<bool>();
+ public Optional<bool> publishMediaPlayerAudioTrack = new Optional<bool>();
+ public Optional<bool> publishMediaPlayerVideoTrack = new Optional<bool>();
+ public Optional<bool> publishTranscodedVideoTrack = new Optional<bool>();
+ public Optional<bool> publishLipSyncTrack = new Optional<bool>();
+ public Optional<bool> autoSubscribeAudio = new Optional<bool>();
+ public Optional<bool> autoSubscribeVideo = new Optional<bool>();
+ public Optional<bool> enableAudioRecordingOrPlayout = new Optional<bool>();
+ public Optional<int> publishMediaPlayerId = new Optional<int>();
+ public Optional<CLIENT_ROLE_TYPE> clientRoleType = new Optional<CLIENT_ROLE_TYPE>();
+ public Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel = new Optional<AUDIENCE_LATENCY_LEVEL_TYPE>();
+ public Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType = new Optional<VIDEO_STREAM_TYPE>();
+ public Optional<CHANNEL_PROFILE_TYPE> channelProfile = new Optional<CHANNEL_PROFILE_TYPE>();
+ public Optional<string> token = new Optional<string>();
+ public Optional<bool> publishRhythmPlayerTrack = new Optional<bool>();
+ public Optional<bool> isInteractiveAudience = new Optional<bool>();
+ public Optional<video_track_id_t> customVideoTrackId = new Optional<video_track_id_t>();
+ public Optional<bool> isAudioFilterable = new Optional<bool>();
+
+ }
+ export class ChannelMediaOptions {
+
+ publishCameraTrack?: boolean;
+
+ publishSecondaryCameraTrack?: boolean;
+
+ publishThirdCameraTrack?: boolean;
+
+ publishFourthCameraTrack?: boolean;
+
+ publishMicrophoneTrack?: boolean;
+
+ publishScreenCaptureVideo?: boolean;
+
+ publishScreenCaptureAudio?: boolean;
+
+ publishSecondaryScreenTrack?: boolean;
+
+ publishThirdScreenTrack?: boolean;
+
+ publishFourthScreenTrack?: boolean;
+
+ publishCustomAudioTrack?: boolean;
+
+ publishCustomAudioTrackId?: number;
+
+ publishCustomVideoTrack?: boolean;
+
+ publishEncodedVideoTrack?: boolean;
+
+ publishMediaPlayerAudioTrack?: boolean;
+
+ publishMediaPlayerVideoTrack?: boolean;
+
+ publishTranscodedVideoTrack?: boolean;
+
+ publishLipSyncTrack?: boolean;
+
+ autoSubscribeAudio?: boolean;
+
+ autoSubscribeVideo?: boolean;
+
+ enableAudioRecordingOrPlayout?: boolean;
+
+ publishMediaPlayerId?: number;
+
+ clientRoleType?: ClientRoleType;
+
+ audienceLatencyLevel?: AudienceLatencyLevelType;
+
+ defaultVideoStreamType?: VideoStreamType;
+
+ channelProfile?: ChannelProfileType;
+
+ token?: string;
+
+ enableBuiltInMediaEncryption?: boolean;
+
+ publishRhythmPlayerTrack?: boolean;
+
+ isInteractiveAudience?: boolean;
+
+ customVideoTrackId?: number;
+
+ isAudioFilterable?: boolean;
+ }
+ @JsonSerializable(explicitToJson: true, includeIfNull: false)
+ class ChannelMediaOptions {
+ const ChannelMediaOptions(
+ {this.publishCameraTrack,
+ this.publishSecondaryCameraTrack,
+ this.publishThirdCameraTrack,
+ this.publishFourthCameraTrack,
+ this.publishMicrophoneTrack,
+ this.publishScreenCaptureVideo,
+ this.publishScreenCaptureAudio,
+ this.publishScreenTrack,
+ this.publishSecondaryScreenTrack,
+ this.publishThirdScreenTrack,
+ this.publishFourthScreenTrack,
+ this.publishCustomAudioTrack,
+ this.publishCustomAudioTrackId,
+ this.publishCustomVideoTrack,
+ this.publishEncodedVideoTrack,
+ this.publishMediaPlayerAudioTrack,
+ this.publishMediaPlayerVideoTrack,
+ this.publishTranscodedVideoTrack,
+ this.publishMixedAudioTrack,
+ this.publishLipSyncTrack,
+ this.autoSubscribeAudio,
+ this.autoSubscribeVideo,
+ this.enableAudioRecordingOrPlayout,
+ this.publishMediaPlayerId,
+ this.clientRoleType,
+ this.audienceLatencyLevel,
+ this.defaultVideoStreamType,
+ this.channelProfile,
+ this.audioDelayMs,
+ this.mediaPlayerAudioDelayMs,
+ this.token,
+ this.enableBuiltInMediaEncryption,
+ this.publishRhythmPlayerTrack,
+ this.isInteractiveAudience,
+ this.customVideoTrackId,
+ this.isAudioFilterable,
+ this.parameters});
+
+ @JsonKey(name: 'publishCameraTrack')
+ final bool? publishCameraTrack;
+
+ @JsonKey(name: 'publishSecondaryCameraTrack')
+ final bool? publishSecondaryCameraTrack;
+
+ @JsonKey(name: 'publishThirdCameraTrack')
+ final bool? publishThirdCameraTrack;
+
+ @JsonKey(name: 'publishFourthCameraTrack')
+ final bool? publishFourthCameraTrack;
+
+ @JsonKey(name: 'publishMicrophoneTrack')
+ final bool? publishMicrophoneTrack;
+
+ @JsonKey(name: 'publishScreenCaptureVideo')
+ final bool? publishScreenCaptureVideo;
+
+ @JsonKey(name: 'publishScreenCaptureAudio')
+ final bool? publishScreenCaptureAudio;
+
+ @JsonKey(name: 'publishScreenTrack')
+ final bool? publishScreenTrack;
+
+ @JsonKey(name: 'publishSecondaryScreenTrack')
+ final bool? publishSecondaryScreenTrack;
+
+ @JsonKey(name: 'publishThirdScreenTrack')
+ final bool? publishThirdScreenTrack;
+
+ @JsonKey(name: 'publishFourthScreenTrack')
+ final bool? publishFourthScreenTrack;
+
+ @JsonKey(name: 'publishCustomAudioTrack')
+ final bool? publishCustomAudioTrack;
+
+ @JsonKey(name: 'publishCustomAudioTrackId')
+ final int? publishCustomAudioTrackId;
+
+ @JsonKey(name: 'publishCustomVideoTrack')
+ final bool? publishCustomVideoTrack;
+
+ @JsonKey(name: 'publishEncodedVideoTrack')
+ final bool? publishEncodedVideoTrack;
+
+ @JsonKey(name: 'publishMediaPlayerAudioTrack')
+ final bool? publishMediaPlayerAudioTrack;
+
+ @JsonKey(name: 'publishMediaPlayerVideoTrack')
+ final bool? publishMediaPlayerVideoTrack;
+
+ @JsonKey(name: 'publishTranscodedVideoTrack')
+ final bool? publishTranscodedVideoTrack;
+
+ @JsonKey(name: 'publishMixedAudioTrack')
+ final bool? publishMixedAudioTrack;
+
+ @JsonKey(name: 'publishLipSyncTrack')
+ final bool? publishLipSyncTrack;
+
+ @JsonKey(name: 'autoSubscribeAudio')
+ final bool? autoSubscribeAudio;
+
+ @JsonKey(name: 'autoSubscribeVideo')
+ final bool? autoSubscribeVideo;
+
+ @JsonKey(name: 'enableAudioRecordingOrPlayout')
+ final bool? enableAudioRecordingOrPlayout;
+
+ @JsonKey(name: 'publishMediaPlayerId')
+ final int? publishMediaPlayerId;
+
+ @JsonKey(name: 'clientRoleType')
+ final ClientRoleType? clientRoleType;
+
+ @JsonKey(name: 'audienceLatencyLevel')
+ final AudienceLatencyLevelType? audienceLatencyLevel;
+
+ @JsonKey(name: 'defaultVideoStreamType')
+ final VideoStreamType? defaultVideoStreamType;
+
+ @JsonKey(name: 'channelProfile')
+ final ChannelProfileType? channelProfile;
+
+ @JsonKey(name: 'audioDelayMs')
+ final int? audioDelayMs;
+
+ @JsonKey(name: 'mediaPlayerAudioDelayMs')
+ final int? mediaPlayerAudioDelayMs;
+
+ @JsonKey(name: 'token')
+ final String? token;
+
+ @JsonKey(name: 'enableBuiltInMediaEncryption')
+ final bool? enableBuiltInMediaEncryption;
+
+ @JsonKey(name: 'publishRhythmPlayerTrack')
+ final bool? publishRhythmPlayerTrack;
+
+ @JsonKey(name: 'isInteractiveAudience')
+ final bool? isInteractiveAudience;
+
+ @JsonKey(name: 'customVideoTrackId')
+ final int? customVideoTrackId;
+
+ @JsonKey(name: 'isAudioFilterable')
+ final bool? isAudioFilterable;
+
+ @JsonKey(name: 'parameters')
+ final String? parameters;
+
+ factory ChannelMediaOptions.fromJson(Map<String, dynamic> json) =>
+ _$ChannelMediaOptionsFromJson(json);
+
+ Map<String, dynamic> toJson() => _$ChannelMediaOptionsToJson(this);
+ }
+
+
SDK 支持在同一时间、同一 中发布多路音频流、一路视频流。例如,publishMicrophoneTrack、publishCustomAudioTrack 和 publishMediaPlayerAudioTrack 可以同时为 ; publishCameraTrack、publishScreenCaptureVideo、publishScreenTrack、publishCustomVideoTrack 或 publishEncodedVideoTrack 之中同一时间只能有一个为 。
建议你根据业务场景自行设置成员参数值,否则 SDK 会自动对成员参数进行赋值。
diff --git a/dita/RTC-NG/API/rtc_api_data_type.dita b/dita/RTC-NG/API/rtc_api_data_type.dita
index 8e789064c01..7eda617c34b 100644
--- a/dita/RTC-NG/API/rtc_api_data_type.dita
+++ b/dita/RTC-NG/API/rtc_api_data_type.dita
@@ -1129,6 +1129,7 @@
Enum
+
@@ -1366,266 +1367,268 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dita/RTC-NG/RTC_NG_API_Electron.ditamap b/dita/RTC-NG/RTC_NG_API_Electron.ditamap
index 984fb22943f..715d31e56c6 100644
--- a/dita/RTC-NG/RTC_NG_API_Electron.ditamap
+++ b/dita/RTC-NG/RTC_NG_API_Electron.ditamap
@@ -704,8 +704,6 @@
-
-
diff --git a/dita/RTC-NG/RTC_NG_API_RN.ditamap b/dita/RTC-NG/RTC_NG_API_RN.ditamap
index 0d5391dd913..43b7a0febd2 100644
--- a/dita/RTC-NG/RTC_NG_API_RN.ditamap
+++ b/dita/RTC-NG/RTC_NG_API_RN.ditamap
@@ -692,8 +692,6 @@
-
-
diff --git a/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap b/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap
index 2ba40640e69..ce2caad5acc 100644
--- a/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap
+++ b/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap
@@ -2709,20 +2709,6 @@
-
-
-
- setEncryptionMode
-
-
-
-
-
-
- setEncryptionSecret
-
-
-
@@ -5347,6 +5333,48 @@
+
+
+
+ AlphaStitchMode
+
+
+
+
+
+
+ NoAlphaStitch
+
+
+
+
+
+
+ AlphaStitchUp
+
+
+
+
+
+
+ AlphaStitchBelow
+
+
+
+
+
+
+ AlphaStitchLeft
+
+
+
+
+
+
+ AlphaStitchRight
+
+
+
diff --git a/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap b/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap
index ee9b8432397..e43525bcd87 100644
--- a/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap
+++ b/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap
@@ -2763,20 +2763,6 @@
-
-
-
- setEncryptionMode
-
-
-
-
-
-
- setEncryptionSecret
-
-
-
@@ -5258,6 +5244,48 @@
+
+
+
+ AlphaStitchMode
+
+
+
+
+
+
+ NoAlphaStitch
+
+
+
+
+
+
+ AlphaStitchUp
+
+
+
+
+
+
+ AlphaStitchBelow
+
+
+
+
+
+
+ AlphaStitchLeft
+
+
+
+
+
+
+ AlphaStitchRight
+
+
+
From 908b023a89cf3793ca63fc16472af13f089b44e4 Mon Sep 17 00:00:00 2001
From: Cilla-luodan <85477033+Cilla-luodan@users.noreply.github.com>
Date: Wed, 14 Aug 2024 17:55:05 +0800
Subject: [PATCH 2/5] 1
---
.../api_irtcengine_setlocalrendermode2.dita | 5 +++--
dita/RTC-NG/API/class_externalvideoframe.dita | 20 +++++++++++--------
.../config/keys-rtc-ng-api-electron.ditamap | 7 -------
dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap | 7 -------
4 files changed, 15 insertions(+), 24 deletions(-)
diff --git a/dita/RTC-NG/API/api_irtcengine_setlocalrendermode2.dita b/dita/RTC-NG/API/api_irtcengine_setlocalrendermode2.dita
index 05b59fcca08..967ec147045 100644
--- a/dita/RTC-NG/API/api_irtcengine_setlocalrendermode2.dita
+++ b/dita/RTC-NG/API/api_irtcengine_setlocalrendermode2.dita
@@ -39,8 +39,9 @@
初始化本地用户视图后,你可以调用该方法更新本地用户视图的渲染和镜像模式。该方法只影响本地用户看到的视频画面,不影响本地视频的发布。
- 调用时机
- - 请在调用 方法初始化本地视图后,调用该方法。
+ 调用时机
+
+ - 请在调用 方法初始化本地视图后,调用该方法。
- 你可以在通话中多次调用该方法,多次更新本地用户视图的显示模式。
diff --git a/dita/RTC-NG/API/class_externalvideoframe.dita b/dita/RTC-NG/API/class_externalvideoframe.dita
index 440496fc821..061225df842 100644
--- a/dita/RTC-NG/API/class_externalvideoframe.dita
+++ b/dita/RTC-NG/API/class_externalvideoframe.dita
@@ -153,10 +153,13 @@
eglType?: EglContextType;
textureId?: number;
matrix?: number[];
- metadata_buffer?: Uint8Array;
- metadata_size?: number;
+ metadataBuffer?: Uint8Array;
+ metadataSize?: number;
+ alphaBuffer?: Uint8Array;
fillAlphaBuffer?: boolean;
alphaStitchMode?: AlphaStitchMode;
+ d3d11Texture2d?: any;
+ textureSliceIndex?: number;
}
public class ExternalVideoFrame
{
@@ -196,8 +199,9 @@
eglType?: EglContextType;
textureId?: number;
matrix?: number[];
- metadata_buffer?: Uint8Array;
- metadata_size?: number;
+ metadataBuffer?: Uint8Array;
+ metadataSize?: number;
+ alphaBuffer?: Uint8Array;
fillAlphaBuffer?: boolean;
alphaStitchMode?: AlphaStitchMode;
}
@@ -439,10 +443,10 @@ class ExternalVideoFrame {
metadataSize
该参数仅适用于 Texture 格式的视频数据。指 MetaData 的大小,默认值为 0。
-
-
-
-
+
+ d3d11Texture2d
+ 该参数仅适用于 Windows Texture 格式的视频数据。表示一个指向 ID3D11Texture2D 类型对象的指针,该类型对象被视频帧所使用。
+
alphaBuffer
alphaBuf
diff --git a/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap b/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap
index ce2caad5acc..8e597379db9 100644
--- a/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap
+++ b/dita/RTC-NG/config/keys-rtc-ng-api-electron.ditamap
@@ -2589,13 +2589,6 @@
-
-
-
- onExtensionEvent
-
-
-
diff --git a/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap b/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap
index e43525bcd87..8c035447c5b 100644
--- a/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap
+++ b/dita/RTC-NG/config/keys-rtc-ng-api-rn.ditamap
@@ -2643,13 +2643,6 @@
-
-
-
- onExtensionEvent
-
-
-
From 5a5db9921298f22896cf60b55e564f446122a93b Mon Sep 17 00:00:00 2001
From: Cilla-luodan <85477033+Cilla-luodan@users.noreply.github.com>
Date: Thu, 15 Aug 2024 09:42:19 +0800
Subject: [PATCH 3/5] 1
---
dita/RTC-NG/API/class_videoframe.dita | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dita/RTC-NG/API/class_videoframe.dita b/dita/RTC-NG/API/class_videoframe.dita
index 938035c8a47..15824b0d967 100644
--- a/dita/RTC-NG/API/class_videoframe.dita
+++ b/dita/RTC-NG/API/class_videoframe.dita
@@ -717,7 +717,7 @@ class VideoFrame {
textureId
该参数仅适用于 Texture 格式的视频数据。Texture ID。
-
+
d3d11Texture2d
该参数仅适用于 Windows Texture 格式的视频数据。表示一个指向 ID3D11Texture2D 类型对象的指针,该类型对象被视频帧所使用。
From 8fcc8917a2fff701e4294a328b024f212b534059 Mon Sep 17 00:00:00 2001
From: Cilla-luodan <85477033+Cilla-luodan@users.noreply.github.com>
Date: Thu, 15 Aug 2024 14:45:21 +0800
Subject: [PATCH 4/5] review comments
---
...ck_irtcengineeventhandler_onextensionstartedwithcontext.dita | 2 --
dita/RTC-NG/API/class_videoframe.dita | 2 +-
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita
index 98fc6795d03..89053d214a0 100644
--- a/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita
+++ b/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita
@@ -20,8 +20,6 @@
(void)context;
}
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnExtensionStarted, FString, provider, FString, extension);
- public virtual void OnExtensionEventWithContext(ExtensionContext context, string key, string value){ }
- onExtensionStarted?(provider: string, extension: string): void;
onExtensionStartedWithContext?(context: ExtensionContext): void;
public virtual void OnExtensionEventWithContext(ExtensionContext context, string key, string value){ }
onExtensionStartedWithContext?(context: ExtensionContext): void;
diff --git a/dita/RTC-NG/API/class_videoframe.dita b/dita/RTC-NG/API/class_videoframe.dita
index 15824b0d967..04ea4808e84 100644
--- a/dita/RTC-NG/API/class_videoframe.dita
+++ b/dita/RTC-NG/API/class_videoframe.dita
@@ -717,7 +717,7 @@ class VideoFrame {
textureId
该参数仅适用于 Texture 格式的视频数据。Texture ID。
-
+
d3d11Texture2d
该参数仅适用于 Windows Texture 格式的视频数据。表示一个指向 ID3D11Texture2D 类型对象的指针,该类型对象被视频帧所使用。
From cb56800805d5b6869a66b068e5eeb319c92affc1 Mon Sep 17 00:00:00 2001
From: Cilla-luodan <85477033+Cilla-luodan@users.noreply.github.com>
Date: Thu, 15 Aug 2024 14:46:54 +0800
Subject: [PATCH 5/5] 1
---
dita/RTC-NG/API/class_videoframe.dita | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dita/RTC-NG/API/class_videoframe.dita b/dita/RTC-NG/API/class_videoframe.dita
index 04ea4808e84..a69ba2d28c0 100644
--- a/dita/RTC-NG/API/class_videoframe.dita
+++ b/dita/RTC-NG/API/class_videoframe.dita
@@ -717,7 +717,7 @@ class VideoFrame {
textureId
该参数仅适用于 Texture 格式的视频数据。Texture ID。
-
+
d3d11Texture2d
该参数仅适用于 Windows Texture 格式的视频数据。表示一个指向 ID3D11Texture2D 类型对象的指针,该类型对象被视频帧所使用。