Agora Java API Reference for Android
Public Member Functions | Public Attributes | List of all members
io.agora.rtc2.ChannelMediaOptions Class Reference

The channel media options. More...

Public Member Functions

 ChannelMediaOptions (Integer clientRoleType)
 
Boolean isPublishCameraTrack ()
 
Boolean isPublishSecondaryCameraTrack ()
 
Boolean isPublishThirdCameraTrack ()
 
Boolean isPublishFourthCameraTrack ()
 
Boolean isPublishScreenCaptureVideo ()
 
Boolean isPublishScreenCaptureAudio ()
 
Boolean isPublishCustomAudioTrack ()
 
Boolean isPublishCustomVideoTrack ()
 
Boolean isPublishEncodedVideoTrack ()
 
Boolean isPublishMediaPlayerAudioTrack ()
 
Boolean isPublishMediaPlayerVideoTrack ()
 
Boolean isPublishTranscodedVideoTrack ()
 
Boolean isPublishMixedAudioTrack ()
 
Boolean isPublishLipSyncTrack ()
 
Integer getPublishMediaPlayerId ()
 
Boolean isPublishMicrophoneTrack ()
 
Boolean isAutoSubscribeAudio ()
 
Boolean isAutoSubscribeVideo ()
 
Boolean isStartPreview ()
 
Boolean isEnableAudioRecordingOrPlayout ()
 
Integer getClientRoleType ()
 
Integer getAudienceLatencyLevel ()
 
Integer getDefaultVideoStreamType ()
 
Integer getChannelProfile ()
 
Integer getAudioDelayMs ()
 
Integer getMediaPlayerAudioDelayMs ()
 
String getToken ()
 
Boolean isEnableBuiltInMediaEncryption ()
 
Boolean getPublishRhythmPlayerTrack ()
 
Boolean getIsAudioFilterable ()
 
Integer getPublishCustomAudioTrackId ()
 
Integer getCustomVideoTrackId ()
 
Boolean isInteractiveAudience ()
 
String getParameters ()
 
Boolean isEnableMultipath ()
 
Integer getUplinkMultipathMode ()
 
Integer getDownlinkMultipathMode ()
 
Integer getPreferMultipathType ()
 
String toString ()
 

Public Attributes

Boolean publishCameraTrack
 
Boolean publishSecondaryCameraTrack
 
Boolean publishThirdCameraTrack
 
Boolean publishFourthCameraTrack
 
Boolean publishMicrophoneTrack
 
Boolean publishScreenCaptureVideo
 
Boolean publishScreenCaptureAudio
 
Boolean publishCustomAudioTrack
 
Integer publishCustomAudioTrackId
 
Boolean publishCustomVideoTrack
 
Boolean publishEncodedVideoTrack
 
Boolean publishMediaPlayerAudioTrack
 
Boolean publishMediaPlayerVideoTrack
 
Boolean publishTranscodedVideoTrack
 
Boolean publishMixedAudioTrack
 
Boolean publishLipSyncTrack
 
Boolean autoSubscribeAudio
 
Boolean autoSubscribeVideo
 
Boolean enableAudioRecordingOrPlayout
 
Integer publishMediaPlayerId
 
Integer clientRoleType
 
Integer audienceLatencyLevel
 
Integer defaultVideoStreamType
 
Integer channelProfile
 
Integer audioDelayMs
 
Integer mediaPlayerAudioDelayMs
 
String token
 
Boolean enableBuiltInMediaEncryption
 
Boolean publishRhythmPlayerTrack
 
Boolean isInteractiveAudience
 
Integer customVideoTrackId
 
Boolean isAudioFilterable
 
Boolean startPreview
 
String parameters
 
Boolean enableMultipath
 
Integer uplinkMultipathMode
 
Integer downlinkMultipathMode
 
Integer preferMultipathType
 

Detailed Description

The channel media options.

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.

Note
Agora recommends that you set member parameter values yourself according to your business scenario, otherwise the SDK will automatically assign values to member parameters.

Member Data Documentation

◆ publishCameraTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.publishSecondaryCameraTrack

Determines whether to publish the video of the secondary camera track.

  • true: Publish the video track of the secondary camera capturer.
  • false: (Default) Do not publish the video track of the secondary camera capturer.

◆ publishThirdCameraTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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.

◆ publishFourthCameraTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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.

◆ publishMicrophoneTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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.

◆ publishScreenCaptureVideo

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.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

Integer io.agora.rtc2.ChannelMediaOptions.publishCustomAudioTrackId

The ID of the custom audio track to be published. The default value is 0. You can obtain the custom audio track ID through the createCustomAudioTrack method.

◆ publishCustomVideoTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.publishEncodedVideoTrack

Whether to publish the encoded video:

  • true: Publish the encoded video.
  • false: Do not publish the encoded video.

◆ publishMediaPlayerAudioTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.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.

◆ publishTranscodedVideoTrack

Boolean io.agora.rtc2.ChannelMediaOptions.publishTranscodedVideoTrack

Whether to publish the local transcoded video track.

  • true: Publish the video track of local transcoded video track.
  • false: (Default) Do not publish the local transcoded video track.

◆ publishMixedAudioTrack

Boolean io.agora.rtc2.ChannelMediaOptions.publishMixedAudioTrack

Whether to publish the mixed audio track:

  • true: Publish the mixed audio track.
  • false: Do not publish the mixed audio track.

◆ publishLipSyncTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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.

◆ autoSubscribeAudio

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.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

Integer io.agora.rtc2.ChannelMediaOptions.publishMediaPlayerId

The ID of the media player to be published. The default value is 0.

◆ clientRoleType

Integer io.agora.rtc2.ChannelMediaOptions.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

Integer io.agora.rtc2.ChannelMediaOptions.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

Integer io.agora.rtc2.ChannelMediaOptions.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

Integer io.agora.rtc2.ChannelMediaOptions.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.

◆ audioDelayMs

Integer io.agora.rtc2.ChannelMediaOptions.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.

◆ mediaPlayerAudioDelayMs

Integer io.agora.rtc2.ChannelMediaOptions.mediaPlayerAudioDelayMs

The delay in ms for sending media player audio frames. This is used for explicit control of A/V sync. To switch off the delay, set the value to zero.

◆ token

String io.agora.rtc2.ChannelMediaOptions.token

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

Note
  • 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 create(RtcEngineConfig config) method for initializing the RTC engine, and those used by the joinChannel(String token, String channelId, int uid, ChannelMediaOptions options) and joinChannelEx methods for joining the channel.

◆ enableBuiltInMediaEncryption

Boolean io.agora.rtc2.ChannelMediaOptions.enableBuiltInMediaEncryption

Enable media packet encryption. It will be ignored when calling function updateChannelMediaOptions().

  • true: Enable media packet encryption.
  • false: (Default) Do not Enable media packet encryption.

◆ publishRhythmPlayerTrack

Boolean io.agora.rtc2.ChannelMediaOptions.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

Boolean io.agora.rtc2.ChannelMediaOptions.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.
    Note
  • 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

Integer io.agora.rtc2.ChannelMediaOptions.customVideoTrackId

The video track ID returned by calling the createCustomVideoTrack method. The default value is 0.

◆ isAudioFilterable

Boolean io.agora.rtc2.ChannelMediaOptions.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.
    Note
    If you need to enable this function, contact support@agora.io.

◆ startPreview

Boolean io.agora.rtc2.ChannelMediaOptions.startPreview

Determines whether to start preview when join channel if canvas have been set.

  • true: (Default) Start preview when join channel.
  • false: Do not start preview.

◆ parameters

String io.agora.rtc2.ChannelMediaOptions.parameters

Provides the technical preview functionalities or special customizations by configuring the SDK with JSON options. @technical preview

◆ enableMultipath

Boolean io.agora.rtc2.ChannelMediaOptions.enableMultipath

Whether to enable multiple transmisssion paths:

  • true: Enable multiple transmisssion path.
  • false: Dsiable multiple transmisssion path.
    Note
    Permissions and system requirements: Android: Android 7.0 or higher (API level 24 or higher), and the ACCESS_NETWORK_STATE and CHANGE_NETWORK_STATE permissions are required.
    Since
    4.6.0

◆ uplinkMultipathMode

Integer io.agora.rtc2.ChannelMediaOptions.uplinkMultipathMode

Uplink transmission mode. See MultipathMode.

Note
When using this parameter, make sure that enableMultipath is set to true.
Since
4.6.0

◆ downlinkMultipathMode

Integer io.agora.rtc2.ChannelMediaOptions.downlinkMultipathMode

Downlink transmission mode. See MultipathMode.

Note
When using this parameter, make sure that enableMultipath is set to true.
Since
4.6.0

◆ preferMultipathType

Integer io.agora.rtc2.ChannelMediaOptions.preferMultipathType

Preferred type of transmission path. See MultipathType.

Note
When using this parameter, make sure that enableMultipath is set to true.
Since
4.6.0