ChannelMediaOptions
The channel media options.
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() {}
true
at the same time, but only one of publishCameraTrack, publishScreenCaptureVideo, publishScreenTrack, publishCustomVideoTrack, or publishEncodedVideoTrack can be set as true
.Attention: Agora recommends that you set member parameter values yourself according to your business scenario, otherwise the SDK will automatically assign values to member parameters.
Attributes
- publishCameraTrack
- Whether to publish the video captured by the camera:
true
: Publish the video captured by the camera.false
: Do not publish the video captured by the camera.
- publishSecondaryCameraTrack
- Whether to publish the video captured by the second camera:
true
: Publish the video captured by the second camera.false
: Do not publish the video captured by the second camera.
- publishMicrophoneTrack
- Whether to publish the audio captured by the microphone:
true
: Publish the audio captured by the microphone.false
: Do not publish the audio captured by the microphone.
- publishThirdCameraTrack
- Whether to publish the video captured by the third camera:
true
: Publish the video captured by the third camera.false
: Do not publish the video captured by the third camera.
Attention: This parameter is for Android, Windows and macOS only. - publishFourthCameraTrack
- Whether to publish the video captured by the fourth camera:
true
: Publish the video captured by the fourth camera.false
: Do not publish the video captured by the fourth camera.
Attention: This parameter is for Android, Windows and macOS only. - publishScreenTrack
-
Whether to publish the video captured from the screen:
true
: Publish the video captured from the screen.false
: Do not publish the video captured from the screen.
Attention: This is for Windows and macOS only. - publishScreenCaptureVideo
-
Whether to publish the video captured from the screen:
true
: Publish the video captured from the screen.false
: Do not publish the video captured from the screen.
Attention: This parameter is for Android and iOS only. - publishScreenCaptureAudio
-
Whether to publish the audio captured from the screen:
true
: Publish the audio captured from the screen.false
: Publish the audio captured from the screen.
Attention: This parameter is for Android and iOS only. - publishSecondaryScreenTrack
- Whether to publish the video captured from the second screen:
true
: Publish the video captured from the second screen.false
: Do not publish the video captured from the second screen.
- publishThirdScreenTrack
- Whether to publish the video captured from the third screen:
true
: Publish the captured video from the third screen.false
: Do not publish the video captured from the third screen.
Attention: This is for Windows and macOS only. - publishFourthScreenTrack
- Whether to publish the video captured from the fourth screen:
true
: Publish the captured video from the fourth screen.false
: Do not publish the video captured from the fourth screen.
Attention: This is for Windows and macOS only. - publishTranscodedVideoTrack
- Whether to publish the local transcoded video:
true
: Publish the local transcoded video.false
: Do not publish the local transcoded video.
- publishLipSyncTrack
- Whether to publish the video track processed by the speech driven extension:
true
: Publish the video track processed by the speech driven extension.false
: (Default) Do not publish the video track processed by the speech driven extension.
- publishCustomAudioTrack
- Whether to publish the audio captured from a custom source:
true
: Publish the audio captured from the custom source.false
: Do not publish the captured audio from a custom source.
- publishCustomAudioTrackId
- The ID of the custom audio source to publish. The default value is 0.
If you have set sourceNumber in setExternalAudioSource to a value greater than 1, the SDK creates the corresponding number of custom audio tracks and assigns an ID to each audio track, starting from 0.
- publishCustomVideoTrack
- Whether to publish the video captured from a custom source:
true
: Publish the video captured from the custom source.false
: Do not publish the captured video from a custom source.
- publishEncodedVideoTrack
- Whether to publish the encoded video:
true
: Publish the encoded video.false
: Do not publish the encoded video.
- publishMediaPlayerAudioTrack
- Whether to publish the audio from the media player:
true
: Publish the audio from the media player.false
: Do not publish the audio from the media player.
- publishMediaPlayerVideoTrack
- Whether to publish the video from the media player:
true
: Publish the video from the media player.false
: Do not publish the video from the media player.
- autoSubscribeAudio
- Whether to automatically subscribe to all remote audio streams when the user joins a channel:
true
: Subscribe to all remote audio streams.false
: Do not automatically subscribe to any remote audio streams.
- autoSubscribeVideo
- Whether to automatically subscribe to all remote video streams when the user joins the channel:
true
: Subscribe to all remote video streams.false
: Do not automatically subscribe to any remote video streams.
- enableAudioRecordingOrPlayout
- Whether to enable audio capturing or playback:
true
: Enable audio capturing or playback.false
: Do not enable audio capturing or playback.
Note: If you need to publish the audio streams captured by your microphone, ensure this parameter is set astrue
. - publishMediaPlayerId
- The ID of the media player to be published. The default value is 0.
- clientRoleType
-
The user role. See CLIENT_ROLE_TYPE.
Note: If you set the user role as an audience member, you cannot publish audio and video streams in the channel. If you want to publish media streams in a channel during live streaming, ensure you set the user role as broadcaster. - audienceLatencyLevel
- The latency level of an audience member in interactive live streaming. See AUDIENCE_LATENCY_LEVEL_TYPE.
- defaultVideoStreamType
-
The default video-stream type. See VIDEO_STREAM_TYPE.
- channelProfile
-
The channel profile. See CHANNEL_PROFILE_TYPE.
- audioDelayMs
-
Delay (in milliseconds) for sending audio frames. You can use this parameter to set the delay of the audio frames that need to be sent, to ensure audio and video synchronization.
To switch off the delay, set the value to 0.
- token
-
(Optional) The token generated on your server for authentication. See .
Attention:- This parameter takes effect only when calling updateChannelMediaOptions or updateChannelMediaOptionsEx.
- Ensure that the App ID, channel name, and user name used for creating the token are the same as those used by the initialize method for initializing the RTC engine, and those used by the joinChannel [2/2] and joinChannelEx methods for joining the channel.
- publishRhythmPlayerTrack
- Whether to publish the sound of a metronome to remote users:
true
: Publish processed audio frames. Both the local user and remote users can hear the metronome.false
: Do not publish the sound of the metronome. Only the local user can hear the metronome.
- isInteractiveAudience
- Whether to enable interactive mode:
true
: Enable interactive mode. Once this mode is enabled and the user role is set as audience, the user can receive remote video streams with low latency.false
:Do not enable interactive mode. If this mode is disabled, the user receives the remote video streams in default settings.
Attention:- This parameter only applies to co-streaming scenarios. The cohosts need to call the joinChannelEx method to join the other host's channel as an audience member, and set isInteractiveAudience to
true
. - This parameter takes effect only when the user role is CLIENT_ROLE_AUDIENCE.
- customVideoTrackId
- The video track ID returned by calling the createCustomVideoTrack method. The default value is 0.
- isAudioFilterable
- Whether the audio stream being published is filtered according to the volume algorithm:
true
: The audio stream is filtered. If the audio stream filter is not enabled, this setting does not takes effect.false
: The audio stream is not filtered.
Attention: If you need to enable this function, contact support@agora.io.