ChannelMediaOptions

  • C++

更新时间不可用

用于设置频道媒体选项。

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(TARGET_OS_MAC) || defined(__OHOS__)
  Optional<bool> publishScreenCaptureAudio;
#endif
#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
  Optional<bool> publishScreenCaptureVideo;
#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

是否发布屏幕采集器的音频轨道:

  • 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

注: 如需启用该功能,请联系技术支持

发布的音频流是否根据音量算法进行过滤:

  • true:音频流被过滤。如果未启用音频流过滤器,该设置不生效。
  • false:音频流不被过滤。
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:禁用多路径传输。
preferMultipathType

首选的传输路径类型。详见 MultipathType。

注: 使用该参数时,请确保已将 enableMultipath 设置为 true。

表格内容超出当前宽度,可横向滚动查看更多列。

这个页面有帮助吗?