Agora Java API Reference for Android
Classes | Public Member Functions | List of all members
agora::rtc::ILocalUser Class Referenceabstract

#include <NGIAgoraLocalUser.h>

Inheritance diagram for agora::rtc::ILocalUser:
agora::rtc::ILocalUserEx

Classes

struct  ANAStats
 
struct  AudioProcessingStats
 
struct  LocalAudioDetailedStats
 
struct  VideoSubscriptionOptions
 

Public Member Functions

virtual void setUserRole (rtc::CLIENT_ROLE_TYPE role)=0
 
virtual CLIENT_ROLE_TYPE getUserRole ()=0
 
virtual int setAudioEncoderConfiguration (const rtc::AudioEncoderConfiguration &config)=0
 
virtual bool getLocalAudioStatistics (LocalAudioDetailedStats &stats)=0
 
virtual int publishAudio (agora_refptr< ILocalAudioTrack > audioTrack)=0
 
virtual int unpublishAudio (agora_refptr< ILocalAudioTrack > audioTrack)=0
 
virtual int publishVideo (agora_refptr< ILocalVideoTrack > videoTrack)=0
 
virtual int unpublishVideo (agora_refptr< ILocalVideoTrack > videoTrack)=0
 
virtual int subscribeAudio (user_id_t userId)=0
 
virtual int subscribeAllAudio ()=0
 
virtual int unsubscribeAudio (user_id_t userId)=0
 
virtual int unsubscribeAllAudio ()=0
 
virtual int adjustPlaybackSignalVolume (int volume)=0
 
virtual int getPlaybackSignalVolume (int *volume)=0
 
virtual int adjustUserPlaybackSignalVolume (uid_t uid, int volume)=0
 
virtual int getUserPlaybackSignalVolume (uid_t uid, int *volume)=0
 
virtual bool pullMixedAudioPcmData (void *payload_data, AudioPcmDataInfo &audioFrameInfo)=0
 
virtual int setPlaybackAudioFrameParameters (size_t numberOfChannels, uint32_t sampleRateHz)=0
 
virtual int setRecordingAudioFrameParameters (size_t numberOfChannels, uint32_t sampleRateHz)=0
 
virtual int setMixedAudioFrameParameters (size_t numberOfChannels, uint32_t sampleRateHz)=0
 
virtual int setPlaybackAudioFrameBeforeMixingParameters (size_t numberOfChannels, uint32_t sampleRateHz)=0
 
virtual int registerAudioFrameObserver (agora::media::IAudioFrameObserver *observer)=0
 
virtual int unregisterAudioFrameObserver (agora::media::IAudioFrameObserver *observer)=0
 
virtual int subscribeVideo (user_id_t userId, const VideoSubscriptionOptions &subscriptionOptions)=0
 
virtual int subscribeAllVideo (const VideoSubscriptionOptions &subscriptionOptions)=0
 
virtual int unsubscribeVideo (user_id_t userId)=0
 
virtual int unsubscribeAllVideo ()=0
 
virtual int setAudioVolumeIndicationParameters (int intervalInMS, int smooth)=0
 
virtual int registerLocalUserObserver (ILocalUserObserver *observer, void(*safeDeleter)(ILocalUserObserver *)=NULL)=0
 
virtual int unregisterLocalUserObserver (ILocalUserObserver *observer)=0
 
virtual IMediaControlPacketSendergetMediaControlPacketSender ()=0
 
virtual int registerMediaControlPacketReceiver (IMediaControlPacketReceiver *ctrlPacketReceiver)=0
 
virtual int unregisterMediaControlPacketReceiver (IMediaControlPacketReceiver *ctrlPacketReceiver)=0
 
virtual int sendIntraRequest (user_id_t userId)=0
 

Detailed Description

The ILocalUser class defines the behavior and state of a local user.

Each RTC connection has its own local user. Apps can get the local user object by calling IRtcConnection::getLocalUser.

Each local user has two user roles: broadcaster (publisher and subscriber) and audience (subscriber only). A publisher publishes audio and video tracks, while audience receive them.

Member Function Documentation

◆ setUserRole()

virtual void agora::rtc::ILocalUser::setUserRole ( rtc::CLIENT_ROLE_TYPE  role)
pure virtual

Sets the role of the user.

You can call this method either before or after connecting to an Agora channel:

  • Before connecting: This method sets the user role as publisher or subscriber (default).
  • After connecting: This method allows you to switch the user role between publisher and subscriber. The onChangeRoleSuccess and onChangeRoleFailure callbacks indicate the result of this method call.
Note
If the token in the connect method does not have the same role as role, the connection fails with the onConnectionFailure callback.
Parameters
roleThe role of the user. See CLIENT_ROLE_TYPE.

◆ getUserRole()

virtual CLIENT_ROLE_TYPE agora::rtc::ILocalUser::getUserRole ( )
pure virtual

Gets the role of the user.

Returns
The role of the user: Success.

◆ setAudioEncoderConfiguration()

virtual int agora::rtc::ILocalUser::setAudioEncoderConfiguration ( const rtc::AudioEncoderConfiguration config)
pure virtual

Configures the audio encoder.

The SDK applies the configurations to all the sending audio tracks.

Parameters
configThe reference to the audio encoder configurations.
Returns
  • 0: Success.
  • < 0: Failure.

◆ getLocalAudioStatistics()

virtual bool agora::rtc::ILocalUser::getLocalAudioStatistics ( LocalAudioDetailedStats stats)
pure virtual

Gets the detailed statistics of the local audio.

Parameters
[out]statsThe reference to the detailed statistics of the local audio.
Returns
  • true: Success.
  • false: Failure.

◆ publishAudio()

virtual int agora::rtc::ILocalUser::publishAudio ( agora_refptr< ILocalAudioTrack audioTrack)
pure virtual

Publishes a local audio track to the channel.

By default, all published audio tracks are mixed.

Parameters
audioTrackThe local audio track to be published.
Returns
  • 0: Success.
  • < 0: Failure.
    • -5(ERR_REFUSED), if the role of the local user is not broadcaster.

◆ unpublishAudio()

virtual int agora::rtc::ILocalUser::unpublishAudio ( agora_refptr< ILocalAudioTrack audioTrack)
pure virtual

Stops publishing the local audio track to the channel.

Parameters
audioTrackThe local audio track that you want to stop publishing.
Returns
  • 0: Success.
  • < 0: Failure.

◆ publishVideo()

virtual int agora::rtc::ILocalUser::publishVideo ( agora_refptr< ILocalVideoTrack videoTrack)
pure virtual

Publishes a local video track to the channel.

Parameters
videoTrackThe local video track to be published.
Returns
  • 0: Success.
  • < 0: Failure.

◆ unpublishVideo()

virtual int agora::rtc::ILocalUser::unpublishVideo ( agora_refptr< ILocalVideoTrack videoTrack)
pure virtual

Stops publishing the local video track to the channel.

Parameters
videoTrackThe local video track that you want to stop publishing.
Returns
  • 0: Success.
  • < 0: Failure.

◆ subscribeAudio()

virtual int agora::rtc::ILocalUser::subscribeAudio ( user_id_t  userId)
pure virtual

Subscribes to the audio of a specified remote user in channel.

Parameters
userIdThe ID of the remote user whose audio you want to subscribe to.
Returns
  • 0: Success.
  • < 0: Failure.
    • -2(ERR_INVALID_ARGUMENT), if no such user exists or userId is invalid.

◆ subscribeAllAudio()

virtual int agora::rtc::ILocalUser::subscribeAllAudio ( )
pure virtual

Subscribes to the audio of all remote users in the channel.

This method also automatically subscribes to the audio of any subsequent user.

Returns
  • 0: Success.
  • < 0: Failure.

◆ unsubscribeAudio()

virtual int agora::rtc::ILocalUser::unsubscribeAudio ( user_id_t  userId)
pure virtual

Stops subscribing to the audio of a specified remote user in the channel.

Parameters
userIdThe ID of the user whose audio you want to stop subscribing to.
Returns
  • 0: Success.
  • < 0: Failure.
    • -2(ERR_INVALID_ARGUMENT), if no such user exists or userId is invalid.

◆ unsubscribeAllAudio()

virtual int agora::rtc::ILocalUser::unsubscribeAllAudio ( )
pure virtual

Stops subscribing to the audio of all remote users in the channel.

This method automatically stops subscribing to the audio of any subsequent user, unless you explicitly call subscribeAudio or subscribeAllAudio.

Returns
  • 0: Success.
  • < 0: Failure.

◆ adjustPlaybackSignalVolume()

virtual int agora::rtc::ILocalUser::adjustPlaybackSignalVolume ( int  volume)
pure virtual

Adjusts the playback signal volume.

Parameters
volumeThe playback volume. The value ranges between 0 and 100 (default).
Returns
  • 0: Success.
  • < 0: Failure.

◆ getPlaybackSignalVolume()

virtual int agora::rtc::ILocalUser::getPlaybackSignalVolume ( int *  volume)
pure virtual

Gets the current playback signal volume.

Parameters
volumeA pointer to the playback signal volume.
Returns
  • 0: Success.
  • < 0: Failure.

◆ getUserPlaybackSignalVolume()

virtual int agora::rtc::ILocalUser::getUserPlaybackSignalVolume ( uid_t  uid,
int *  volume 
)
pure virtual

Gets the current playback signal volume of specified user.

Parameters
uidRemote user ID。
volumeA pointer to the playback signal volume.
Returns
  • 0: Success.
  • < 0: Failure.

◆ pullMixedAudioPcmData()

virtual bool agora::rtc::ILocalUser::pullMixedAudioPcmData ( void *  payload_data,
AudioPcmDataInfo audioFrameInfo 
)
pure virtual

Pulls the mixed PCM audio data from the channel.

Note
To pull the mixed PCM audio data using this method, you must clear enableAudioRecordingOrPlayout in RtcConnectionConfiguration when creating the IRtcConnection. Otherwise, this method returns false and payload_data contains no valid data.
Parameters
[out]payload_dataThe pointer to the mixed PCM audio data.
[out]audioFrameInfoThe reference to the information of the PCM audio data: AudioPcmDataInfo.
Returns
  • true: Success.
  • false: Failure.

◆ setPlaybackAudioFrameParameters()

virtual int agora::rtc::ILocalUser::setPlaybackAudioFrameParameters ( size_t  numberOfChannels,
uint32_t  sampleRateHz 
)
pure virtual

Sets the audio frame parameters for the onPlaybackAudioFrame callback.

Parameters
numberOfChannelsThe number of audio channels of the audio frame in the onPlaybackAudioFrame callback.
  • 1: Mono.
  • 2: Stereo.
sampleRateHzThe sample rate (Hz) of the audio frame in the onPlaybackAudioFrame callback. You can set it as 8000, 16000, 32000, 44100, or 48000.
Returns
  • 0: Success.
  • < 0: Failure.

◆ setRecordingAudioFrameParameters()

virtual int agora::rtc::ILocalUser::setRecordingAudioFrameParameters ( size_t  numberOfChannels,
uint32_t  sampleRateHz 
)
pure virtual

Sets the audio frame parameters for the onRecordAudioFrame callback.

Parameters
numberOfChannelsThe number of channels of the audio frame in the onRecordAudioFrame callback.
  • 1: Mono.
  • 2: Stereo.
sampleRateHzThe sample rate (Hz) of the audio frame in the onRecordAudioFrame callback. You can set it as 8000, 16000, 32000, 44100, or 48000.
Returns
  • 0: Success.
  • < 0: Failure.

◆ setMixedAudioFrameParameters()

virtual int agora::rtc::ILocalUser::setMixedAudioFrameParameters ( size_t  numberOfChannels,
uint32_t  sampleRateHz 
)
pure virtual

Sets the audio frame parameters for the onMixedAudioFrame callback.

Parameters
numberOfChannelsThe number of channels of the audio frame in the onMixedAudioFrame callback.
  • 1: Mono.
  • 2: Stereo.
sampleRateHzThe sample rate (Hz) of the audio frame in the onMixedAudioFrame callback. You can set it as 8000, 16000, 32000, 44100, or 48000.
Returns
  • 0: Success.
  • < 0: Failure.

◆ setPlaybackAudioFrameBeforeMixingParameters()

virtual int agora::rtc::ILocalUser::setPlaybackAudioFrameBeforeMixingParameters ( size_t  numberOfChannels,
uint32_t  sampleRateHz 
)
pure virtual

Sets the audio frame parameters for the onPlaybackAudioFrameBeforeMixing callback.

Parameters
numberOfChannelsThe number of channels of the audio frame in the onPlaybackAudioFrameBeforeMixing callback.
  • 1: Mono.
  • 2: Stereo.
sampleRateHzThe sample rate (Hz) of the audio frame in the onPlaybackAudioFrameBeforeMixing callback. You can set it as 8000, 16000, 32000, 44100, or 48000.
Returns
  • 0: Success.
  • < 0: Failure.

◆ registerAudioFrameObserver()

virtual int agora::rtc::ILocalUser::registerAudioFrameObserver ( agora::media::IAudioFrameObserver observer)
pure virtual

Registers an audio frame observer.

You need to implement the IAudioFrameObserver class in this method, and register the following callbacks according to your scenario:

Parameters
observerA pointer to the audio frame observer: IAudioFrameObserver.
Returns
  • 0: Success.
  • < 0: Failure.

◆ unregisterAudioFrameObserver()

virtual int agora::rtc::ILocalUser::unregisterAudioFrameObserver ( agora::media::IAudioFrameObserver observer)
pure virtual

Releases the audio frame observer.

Parameters
observerThe pointer to the audio frame observer: IAudioFrameObserver.
Returns
  • 0: Success.
  • < 0: Failure.

◆ subscribeVideo()

virtual int agora::rtc::ILocalUser::subscribeVideo ( user_id_t  userId,
const VideoSubscriptionOptions subscriptionOptions 
)
pure virtual

Subscribes to the video of a specified remote user in the channel.

Parameters
userIdThe ID of the user whose video you want to subscribe to.
subscriptionOptionsThe reference to the video subscription options: VideoSubscriptionOptions. For example, subscribing to encoded video data only or subscribing to low-stream video.
Returns
  • 0: Success.
  • < 0: Failure.
    • -2(ERR_INVALID_ARGUMENT), if userId is invalid.

◆ subscribeAllVideo()

virtual int agora::rtc::ILocalUser::subscribeAllVideo ( const VideoSubscriptionOptions subscriptionOptions)
pure virtual

Subscribes to the video of all remote users in the channel.

This method also automatically subscribes to the video of any subsequent remote user.

Parameters
subscriptionOptionsThe reference to the video subscription options: VideoSubscriptionOptions.
Returns
  • 0: Success.
  • < 0: Failure.

◆ unsubscribeVideo()

virtual int agora::rtc::ILocalUser::unsubscribeVideo ( user_id_t  userId)
pure virtual

Stops subscribing to the video of a specified remote user in the channel.

Parameters
userIdThe ID of the user whose video you want to stop subscribing to.
Returns
  • 0: Success.
  • < 0: Failure.
    • -2(ERR_INVALID_ARGUMENT), if userId is invalid.

◆ unsubscribeAllVideo()

virtual int agora::rtc::ILocalUser::unsubscribeAllVideo ( )
pure virtual

Stops subscribing to the video of all remote users in the channel.

This method automatically stops subscribing to the video of any subsequent user, unless you explicitly call subscribeVideo or subscribeAllVideo.

Returns
  • 0: Success.
  • < 0: Failure.

◆ setAudioVolumeIndicationParameters()

virtual int agora::rtc::ILocalUser::setAudioVolumeIndicationParameters ( int  intervalInMS,
int  smooth 
)
pure virtual

Sets the time interval and the volume smoothing factor of the onAudioVolumeIndication callback.

By default, the SDK triggers the onAudioVolumeIndication callback once every 500 ms, with a smoothing factor of 3.

Parameters
intervalInMSSets the time interval(ms) between two consecutive volume indications. The default value is 500.
  • ≤ 10: Disables the volume indication.
  • > 10: The time interval (ms) between two consecutive callbacks.
smoothThe smoothing factor that sets the sensitivity of the audio volume indicator. The value range is [0,10]. The greater the value, the more sensitive the indicator.The default value is 3.
Returns
  • 0: Success.
  • < 0: Failure.
    • -2(ERR_INVALID_ARGUMENT), if intervalInMS or smooth is out of range.

◆ registerLocalUserObserver()

virtual int agora::rtc::ILocalUser::registerLocalUserObserver ( ILocalUserObserver observer,
void(*)(ILocalUserObserver *)  safeDeleter = NULL 
)
pure virtual

Registers a local user observer object.

You need to implement the ILocalUserObserver class in this method. Once registered, the ILocalUserObserver receives events of the ILocalUser object.

Parameters
observerThe pointer to the ILocalUserObserver object.
Returns
  • 0: Success.
  • < 0: Failure.

◆ unregisterLocalUserObserver()

virtual int agora::rtc::ILocalUser::unregisterLocalUserObserver ( ILocalUserObserver observer)
pure virtual

Releases the ILocalUserObserver object.

Parameters
observerThe pointer to the ILocalUserObserver object that you want to release.
Returns
  • 0: Success.
  • < 0: Failure.

◆ getMediaControlPacketSender()

virtual IMediaControlPacketSender* agora::rtc::ILocalUser::getMediaControlPacketSender ( )
pure virtual

Gets the media control packet sender.

Returns

◆ registerMediaControlPacketReceiver()

virtual int agora::rtc::ILocalUser::registerMediaControlPacketReceiver ( IMediaControlPacketReceiver ctrlPacketReceiver)
pure virtual

Registers a media control packet receiver.

You need to implement the IMediaControlPacketReceiver class in this method. Once you successfully register the media control packet receiver, the SDK triggers the onMediaControlPacketReceived callback when it receives the media control packet.

Parameters
ctrlPacketReceiverThe pointer to the IMediaControlPacketReceiver object.
Returns
  • 0: Success.
  • < 0: Failure.

◆ unregisterMediaControlPacketReceiver()

virtual int agora::rtc::ILocalUser::unregisterMediaControlPacketReceiver ( IMediaControlPacketReceiver ctrlPacketReceiver)
pure virtual

Releases the media control packet receiver.

Parameters
ctrlPacketReceiverThe pointer to the IMediaControlPacketReceiver object.
Returns
  • 0: Success.
  • < 0: Failure.

◆ sendIntraRequest()

virtual int agora::rtc::ILocalUser::sendIntraRequest ( user_id_t  userId)
pure virtual

Sends intra-frame request to the broadcaster with a specified uid.

The local user receives the onIntraRequestReceived callback when the broadcaster receives the request.

Parameters
userIdThe user ID of the target broadcaster .
Returns
  • 0: Success.
  • < 0: Failure.