ChannelMediaOptions
用于设置频道媒体选项。
C++
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) || defined(__OHOS__)
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> publishMixedAudioTrack;
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<int> audioDelayMs;
Optional<int> mediaPlayerAudioDelayMs;
Optional<const char*> token;
Optional<bool> enableBuiltInMediaEncryption;
Optional<bool> publishRhythmPlayerTrack;
Optional<bool> isInteractiveAudience;
Optional<video_track_id_t> customVideoTrackId;
Optional<bool> isAudioFilterable;
Optional<const char*> parameters;
Optional<bool> enableMultipath;
Optional<MultipathMode> uplinkMultipathMode;
Optional<MultipathMode> downlinkMultipathMode;
Optional<MultipathType> preferMultipathType;
};
支持在同一个 RtcConnection 中同时发布多个音频流和一个视频流。例如,可以同时将 publishMicrophoneTrack、publishCustomAudioTrack 和 publishMediaPlayerAudioTrack 设置为 true,但 publishCameraTrack、publishScreenCaptureVideo、publishScreenTrack、publishCustomVideoTrack 或 publishEncodedVideoTrack 中只能有一个设置为 true。
信息
建议你根据业务场景自行设置成员参数的值,否则 SDK 会自动为其赋值。
publishCameraTrack
是否发布摄像头采集的视频:
true:发布摄像头采集的视频。false:不发布摄像头采集的视频。
publishSecondaryCameraTrack
是否发布第二路摄像头采集的视频:
true:发布第二路摄像头采集的视频。false:不发布第二路摄像头采集的视频。
publishThirdCameraTrack
信息
该参数仅适用于 Android、Windows 和 macOS 平台。
true:发布第三路摄像头采集的视频。false:不发布第三路摄像头采集的视频。
publishFourthCameraTrack
信息
该参数仅适用于 Android、Windows 和 macOS 平台。
true:发布第四路摄像头采集的视频。false:不发布第四路摄像头采集的视频。
publishMicrophoneTrack
是否发布麦克风采集的音频:
true:发布麦克风采集的音频。false:不发布麦克风采集的音频。
publishScreenCaptureVideo
信息
该参数仅适用于 Android 和 iOS 平台。
true:发布屏幕采集的视频。false:不发布屏幕采集的视频。
publishScreenCaptureAudio
信息
该参数仅适用于 Android 和 iOS 平台。
true:发布屏幕采集的音频。false:不发布屏幕采集的音频。
publishScreenTrack
信息
该参数仅适用于 Windows 和 macOS 平台。
true:发布屏幕采集的视频。false:不发布屏幕采集的视频。
publishSecondaryScreenTrack
是否发布第二块屏幕采集的视频:
true:发布第二块屏幕采集的视频。false:不发布第二块屏幕采集的视频。
publishThirdScreenTrack
信息
该参数仅适用于 Windows 和 macOS 平台。
true:发布第三块屏幕采集的视频。false:不发布第三块屏幕采集的视频。
publishFourthScreenTrack
信息
该参数仅适用于 Windows 和 macOS 平台。
true:发布第四块屏幕采集的视频。false:不发布第四块屏幕采集的视频。
publishCustomAudioTrack
是否发布自定义音频源采集的音频:
true:发布自定义音频源采集的音频。false:不发布自定义音频源采集的音频。
publishCustomAudioTrackId
要发布的自定义音频轨道的 ID。默认值为 0。你可以通过 createCustomAudioTrack 获取自定义音频轨道 ID。
publishCustomVideoTrack
是否发布自定义视频源采集的视频:
true:发布自定义视频源采集的视频。false:不发布自定义视频源采集的视频。
publishEncodedVideoTrack
是否发布编码后的视频:
true:发布编码后的视频。false:不发布编码后的视频。
publishMediaPlayerAudioTrack
是否发布媒体播放器的音频:
true:发布媒体播放器的音频。false:不发布媒体播放器的音频。
publishMediaPlayerVideoTrack
是否发布媒体播放器的视频:
true:发布媒体播放器的视频。false:不发布媒体播放器的视频。
publishTranscodedVideoTrack
信息
自 v4.2.0 起,参数名从 publishTrancodedVideoTrack 更正为 publishTranscodedVideoTrack。
true:发布本地合图视频。false:不发布本地合图视频。
publishMixedAudioTrack
是否发布混音音频轨道:
true:发布混音音频轨道。false:不发布混音音频轨道。
publishLipSyncTrack
是否发布由语音驱动扩展处理后的视频轨道:
true:发布由语音驱动扩展处理后的视频轨道。false:(默认)不发布由语音驱动扩展处理后的视频轨道。
autoSubscribeAudio
用户加入频道时,是否自动订阅所有远端音频流:
true:订阅所有远端音频流。false:不自动订阅任何远端音频流。
autoSubscribeVideo
用户加入频道时,是否自动订阅所有远端视频流:
true:订阅所有远端视频流。false:不自动订阅任何远端视频流。
enableAudioRecordingOrPlayout
信息
如果你需要发布麦克风采集的音频流,请确保该参数设置为
true。true:启用音频采集或播放。false:不启用音频采集或播放。
publishMediaPlayerId
要发布的媒体播放器 ID。默认值为 0。
clientRoleType
用户角色。详见 CLIENT_ROLE_TYPE。
信息
如果将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播中发布媒体流,请确保将用户角色设置为主播。
audienceLatencyLevel
互动直播中观众的延迟等级。详见 AUDIENCE_LATENCY_LEVEL_TYPE。
defaultVideoStreamType
默认的视频流类型。详见 VIDEO_STREAM_TYPE。
channelProfile
频道场景。详见 CHANNEL_PROFILE_TYPE。
audioDelayMs
发送音频帧的延迟(单位为毫秒)。你可以使用该参数设置需要发送的音频帧的延迟,以确保音视频同步。要关闭延迟,请将该值设置为 0。
mediaPlayerAudioDelayMs
发送媒体播放器音频帧的延迟(单位为毫秒)。用于显式控制音视频同步。要关闭延迟,请将该值设置为 0。
token
(可选)你在服务器上生成的用于鉴权的 Token。
信息
- 该参数仅在调用 updateChannelMediaOptions 或 updateChannelMediaOptionsEx 时生效。
- 请确保用于生成 Token 的 App ID、频道名和用户名与用于初始化 RTC 引擎的 initialize 方法,以及用于加入频道的 joinChannel 和 joinChannelEx 方法中使用的参数一致。
enableBuiltInMediaEncryption
信息
调用 updateChannelMediaOptions 时该参数被忽略。
true:启用。false:(默认)不启用。
publishRhythmPlayerTrack
是否向远端用户发布节拍器的声音:
true:发布处理后的音频帧,本地用户和远端用户都能听到节拍器。false:不发布节拍器的声音,只有本地用户能听到节拍器。
isInteractiveAudience
信息
- 该参数仅适用于连麦直播场景。联合主播需调用 joinChannelEx 方法以观众身份加入其他主播频道,并将 isInteractiveAudience 设置为
true。 - 该参数仅在用户角色为 CLIENT_ROLE_AUDIENCE 时生效。
true:启用互动模式。false:不启用互动模式。
customVideoTrackId
调用 createCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。
isAudioFilterable
enableMultipath
信息
权限和系统要求:
- Android:Android 7.0 或更高版本(API 级别 24 或更高),需要 ACCESS_NETWORK_STATE 和 CHANGE_NETWORK_STATE 权限。
- iOS:iOS 12.0 或更高版本。
- macOS:10.14 或更高版本。
- Windows:Windows Vista 或更高版本。
true:启用多路径传输。false:禁用多路径传输。
uplinkMultipathMode
上行传输模式。详见 MultipathMode。
信息
使用该参数时,请确保已将 enableMultipath 设置为
true。downlinkMultipathMode
下行传输模式。详见 MultipathMode。
信息
使用该参数时,请确保已将 enableMultipath 设置为
true。preferMultipathType
首选的传输路径类型。详见 MultipathType。
信息
使用该参数时,请确保已将 enableMultipath 设置为
true。