-
+
public class ChannelMediaOptions {
public Boolean publishCameraTrack;
public Boolean publishSecondaryCameraTrack;
@@ -410,6 +410,8 @@ public:
publishTranscodedVideoTrack?: boolean;
+ publishLipSyncTrack?: boolean;
+
autoSubscribeAudio?: boolean;
autoSubscribeVideo?: boolean;
@@ -458,6 +460,7 @@ public:
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>();
@@ -509,6 +512,8 @@ public:
publishTranscodedVideoTrack?: boolean;
+ publishLipSyncTrack?: boolean;
+
autoSubscribeAudio?: boolean;
autoSubscribeVideo?: boolean;
@@ -558,6 +563,8 @@ class ChannelMediaOptions {
this.publishMediaPlayerAudioTrack,
this.publishMediaPlayerVideoTrack,
this.publishTranscodedVideoTrack,
+ this.publishMixedAudioTrack,
+ this.publishLipSyncTrack,
this.autoSubscribeAudio,
this.autoSubscribeVideo,
this.enableAudioRecordingOrPlayout,
@@ -573,117 +580,755 @@ class ChannelMediaOptions {
this.publishRhythmPlayerTrack,
this.isInteractiveAudience,
this.customVideoTrackId,
- this.isAudioFilterable});
+ this.isAudioFilterable,
+ this.parameters});
- @JsonKey(name: 'publishCameraTrack')
+ @JsonKey(name: 'publishCameraTrack')
final bool? publishCameraTrack;
- @JsonKey(name: 'publishSecondaryCameraTrack')
+ @JsonKey(name: 'publishSecondaryCameraTrack')
final bool? publishSecondaryCameraTrack;
- @JsonKey(name: 'publishThirdCameraTrack')
+ @JsonKey(name: 'publishThirdCameraTrack')
final bool? publishThirdCameraTrack;
- @JsonKey(name: 'publishFourthCameraTrack')
+ @JsonKey(name: 'publishFourthCameraTrack')
final bool? publishFourthCameraTrack;
- @JsonKey(name: 'publishMicrophoneTrack')
+ @JsonKey(name: 'publishMicrophoneTrack')
final bool? publishMicrophoneTrack;
- @JsonKey(name: 'publishScreenCaptureVideo')
+ @JsonKey(name: 'publishScreenCaptureVideo')
final bool? publishScreenCaptureVideo;
- @JsonKey(name: 'publishScreenCaptureAudio')
+ @JsonKey(name: 'publishScreenCaptureAudio')
final bool? publishScreenCaptureAudio;
- @JsonKey(name: 'publishScreenTrack')
+ @JsonKey(name: 'publishScreenTrack')
final bool? publishScreenTrack;
- @JsonKey(name: 'publishSecondaryScreenTrack')
+ @JsonKey(name: 'publishSecondaryScreenTrack')
final bool? publishSecondaryScreenTrack;
- @JsonKey(name: 'publishThirdScreenTrack')
+ @JsonKey(name: 'publishThirdScreenTrack')
final bool? publishThirdScreenTrack;
- @JsonKey(name: 'publishFourthScreenTrack')
+ @JsonKey(name: 'publishFourthScreenTrack')
final bool? publishFourthScreenTrack;
- @JsonKey(name: 'publishCustomAudioTrack')
+ @JsonKey(name: 'publishCustomAudioTrack')
final bool? publishCustomAudioTrack;
- @JsonKey(name: 'publishCustomAudioTrackId')
+ @JsonKey(name: 'publishCustomAudioTrackId')
final int? publishCustomAudioTrackId;
- @JsonKey(name: 'publishCustomVideoTrack')
+ @JsonKey(name: 'publishCustomVideoTrack')
final bool? publishCustomVideoTrack;
- @JsonKey(name: 'publishEncodedVideoTrack')
+ @JsonKey(name: 'publishEncodedVideoTrack')
final bool? publishEncodedVideoTrack;
- @JsonKey(name: 'publishMediaPlayerAudioTrack')
+ @JsonKey(name: 'publishMediaPlayerAudioTrack')
final bool? publishMediaPlayerAudioTrack;
- @JsonKey(name: 'publishMediaPlayerVideoTrack')
+ @JsonKey(name: 'publishMediaPlayerVideoTrack')
final bool? publishMediaPlayerVideoTrack;
- @JsonKey(name: 'publishTranscodedVideoTrack')
+ @JsonKey(name: 'publishTranscodedVideoTrack')
final bool? publishTranscodedVideoTrack;
- @JsonKey(name: 'autoSubscribeAudio')
+ @JsonKey(name: 'publishMixedAudioTrack')
+ final bool? publishMixedAudioTrack;
+
+ @JsonKey(name: 'autoSubscribeAudio')
final bool? autoSubscribeAudio;
- @JsonKey(name: 'autoSubscribeVideo')
+ @JsonKey(name: 'autoSubscribeVideo')
final bool? autoSubscribeVideo;
- @JsonKey(name: 'enableAudioRecordingOrPlayout')
+ @JsonKey(name: 'enableAudioRecordingOrPlayout')
final bool? enableAudioRecordingOrPlayout;
- @JsonKey(name: 'publishMediaPlayerId')
+ @JsonKey(name: 'publishMediaPlayerId')
final int? publishMediaPlayerId;
- @JsonKey(name: 'clientRoleType')
+ @JsonKey(name: 'clientRoleType')
final ClientRoleType? clientRoleType;
- @JsonKey(name: 'audienceLatencyLevel')
+ @JsonKey(name: 'audienceLatencyLevel')
final AudienceLatencyLevelType? audienceLatencyLevel;
- @JsonKey(name: 'defaultVideoStreamType')
+ @JsonKey(name: 'defaultVideoStreamType')
final VideoStreamType? defaultVideoStreamType;
- @JsonKey(name: 'channelProfile')
+ @JsonKey(name: 'channelProfile')
final ChannelProfileType? channelProfile;
- @JsonKey(name: 'audioDelayMs')
+ @JsonKey(name: 'audioDelayMs')
final int? audioDelayMs;
- @JsonKey(name: 'mediaPlayerAudioDelayMs')
+ @JsonKey(name: 'mediaPlayerAudioDelayMs')
final int? mediaPlayerAudioDelayMs;
- @JsonKey(name: 'token')
+ @JsonKey(name: 'token')
final String? token;
- @JsonKey(name: 'enableBuiltInMediaEncryption')
+ @JsonKey(name: 'enableBuiltInMediaEncryption')
final bool? enableBuiltInMediaEncryption;
- @JsonKey(name: 'publishRhythmPlayerTrack')
+ @JsonKey(name: 'publishRhythmPlayerTrack')
final bool? publishRhythmPlayerTrack;
- @JsonKey(name: 'isInteractiveAudience')
+ @JsonKey(name: 'isInteractiveAudience')
final bool? isInteractiveAudience;
- @JsonKey(name: 'customVideoTrackId')
+ @JsonKey(name: 'customVideoTrackId')
final int? customVideoTrackId;
- @JsonKey(name: 'isAudioFilterable')
+ @JsonKey(name: 'isAudioFilterable')
final bool? isAudioFilterable;
- factory ChannelMediaOptions.fromJson(Map<String, dynamic> json) =>
+ @JsonKey(name: 'parameters')
+ final String? parameters;
+
+ factory ChannelMediaOptions.fromJson(Map<String, dynamic> json) =>
_$ChannelMediaOptionsFromJson(json);
- Map<String, dynamic> toJson() => _$ChannelMediaOptionsToJson(this);
+ 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/class_extensioncontext.dita b/dita/RTC-NG/API/class_extensioncontext.dita
index 3e9d23a36ff..c859e725f79 100644
--- a/dita/RTC-NG/API/class_extensioncontext.dita
+++ b/dita/RTC-NG/API/class_extensioncontext.dita
@@ -72,10 +72,71 @@ struct FExtensionContext {
SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.extensionName)
}
};