Skip to main content

Methods

All methods are called on the Meeting instance.

Join meeting with access key

fun join(
accessKey: String,
frontCamera: Boolean,
audioOnly: Boolean,
local: VideoSink?,
remote: VideoSink?,
eventListener: EyesonEventListener,
microphoneEnabledOnStart: Boolean = true,
videoEnabledOnStart: Boolean = true,
screenShareInfo: ScreenShareInfo? = null
)

Join meeting with guest token

fun joinAsGuest(
guestToken: String,
name: String,
id: String?,
avatar: String?,
frontCamera: Boolean,
audioOnly: Boolean,
local: VideoSink?,
remote: VideoSink?,
eventListener: EyesonEventListener,
microphoneEnabledOnStart: Boolean = true,
videoEnabledOnStart: Boolean = true,
screenShareInfo: ScreenShareInfo? = null
)
fun connectPermalink(
userToken: String,
frontCamera: Boolean,
audioOnly: Boolean,
local: VideoSink?,
remote: VideoSink?,
eventListener: EyesonEventListener,
microphoneEnabledOnStart: Boolean = true,
videoEnabledOnStart: Boolean = true,
screenShareInfo: ScreenShareInfo? = null,
)

Either the permalink's user token or guest token can be used

suspend fun getPermalinkMeetingInfo(token: String): PermalinkMeetingInfo?

Leave meeting

Leave the meeting. Doesn't end it for other participants

fun leave()

Get meeting info

fun getMeetingInfo(): MeetingInfo?

Get egl context

fun getEglContext(): EglBase.Context?

Start screen share

fun startScreenShare(
screenShareInfo: ScreenShareInfo,
asPresentation: Boolean
)

Stop screen share

Stop screen share and resume with local video muted/unmuted

fun stopScreenShare(resumeLocalVideo: Boolean) 

Is screen share active

fun isScreenShareActive(): Boolean

Set video as presentation

Set current video (local or shared screen) as sole video

fun setVideoAsPresentation()

Stop presentation

Stop the current presentation, regardless who stated it

fun stopPresentation()

Set local video target

fun setLocalVideoTarget(target: VideoSink?)

Set remote video target

fun setRemoteVideoTarget(target: VideoSink?)

Set video enabled

Enable/Disable outgoing video

fun setVideoEnabled(enable: Boolean)

Is local video enabled

fun isVideoEnabled(): Boolean

Switch camera

fun switchCamera()

Is front camera

fun isFrontCamera(): Boolean?

Mute other participants

Send mute command to other participants

fun sendMuteOthers()

Set microphone enabled

fun setMicrophoneEnabled(enable: Boolean)

Is microphone enabled

fun isMicrophoneEnabled(): Boolean

Send chat message

Send chat message to all participants (including self)

fun sendChatMessage(message: String)

Send custom message

Send custom message to all participants (including self)

fun sendCustomMessage(content: String)

Start video playback

Plays webm (preferred) or mp4 in meeting. If replacedUser is null the video will be played as an additional user. In order to stop the video you need to provide a (unique) playId

loopCount can be used to set the number of repetitions. Set -1 for infinite looping. (Doesn't work with h264 video codec. Will only play once)

fun startVideoPlayback(
url: String,
name: String?,
playId: String?,
replacedUser: UserInfo?,
audio: Boolean,
loopCount: Int = 0
)
caution

The feature loopCount will NOT work if video codec is h264! You can check this for example with ffprobe (see ffprobe documentation).

Stop video playback

fun stopVideoPlayback(playId: String)

Enabled logging

fun enabledLogging()

Disable logging

fun disableLogging()

Is widescreen

fun isWidescreen(): Boolean

Get user info

fun getUserInfo(): UserInfo?