ChannelMediaOptions

The channel media options.

public class ChannelMediaOptions {
  public Boolean publishCameraTrack;
  public Boolean publishSecondaryCameraTrack;
  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 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;
            }
Agora supports publishing multiple audio streams and one video stream at the same time and in the same RtcConnection. For example, publishMicrophoneTrack, publishCustomAudioTrack, and publishMediaPlayerAudioTrack can be set as true at the same time, but only one of publishCameraTrack, publishScreenCaptureVideo, 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.
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.
Note:
  • As of v4.0.0, the parameter name is changed from publishAudioTrack to publishMicrophoneTrack.
  • If you set this parameter as false, SDK turns off microphone capturing.
  • If you want to publish the audio streams captured by your microphone, ensure enableAudioRecordingOrPlayout is set as true.
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.
Note: As of v4.0.0, the parameter name is changed from publishScreenTrack to publishScreenCaptureVideo.
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.
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 [2/2] 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 as true.
publishMediaPlayerId
The ID of the media player to be published. The default value is 0.
clientRoleType
The user role:
  • CLIENT_ROLE_BROADCASTER(1): Host.
  • CLIENT_ROLE_AUDIENCE(2): Audience.
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.
  • AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(1): Low latency.
  • AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY(2): (Default) Ultra low latency.
defaultVideoStreamType
The default video-stream type:
  • VIDEO_STREAM_HIGH(0): High-quality stream, that is, a high-resolution and high-bitrate video stream.
  • VIDEO_STREAM_LOW(1): Low-quality stream, that is, a low-resolution and low-bitrate video stream.
channelProfile
The channel profile.
  • CHANNEL_PROFILE_COMMUNICATION(0): Communication. Agora recommends using the live streaming profile for a better audio and video experience.
  • CHANNEL_PROFILE_LIVE_BROADCASTING(1): (Default) Live streaming.
  • CHANNEL_PROFILE_GAME(2): Gaming.
    Deprecated:
    Use CHANNEL_PROFILE_LIVE_BROADCASTING instead.
  • CHANNEL_PROFILE_CLOUD_GAMING(3): Interaction. The scenario is optimized for latency. Use this profile if the use case requires frequent interactions between users.
    Deprecated:
    Use CHANNEL_PROFILE_LIVE_BROADCASTING instead.
token

(Optional) The token generated on your server for authentication. See .

CAUTION:
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.