Methods
All methods are called on the Meeting instance.
You will find an Compose example app in the git repository. A very basic View example is also included.
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
)
Start/Join a meeting using the permalink's user token
fun connectPermalink(
userToken: String,
frontCamera: Boolean,
audioOnly: Boolean,
local: VideoSink?,
remote: VideoSink?,
eventListener: EyesonEventListener,
microphoneEnabledOnStart: Boolean = true,
videoEnabledOnStart: Boolean = true,
screenShareInfo: ScreenShareInfo? = null,
)
Get permalink meeting info
Either the permalink's GUEST_TOKEN
or USER_TOKEN
can be used.
suspend fun getPermalinkMeetingInfo(token: String): PermalinkMeetingInfo?
Leave meeting
Terminates your connection to the current meeting session. This method disconnects you from the meeting without ending it for other participants. All resources associated with your connection will be released.
fun leave()
Get meeting info
suspend 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?)
Enable video
Enable/Disable outgoing video
fun setVideoEnabled(enable: Boolean)
Is local video enabled?
fun isVideoEnabled(): Boolean
Switch camera
fun switchCamera()
Switch camera to
fun switchCameraTo(cameraId: String)
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
Set remote audio enabled
fun setRemoteAudioEnabled(enable: 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
)
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)
Enable logging
fun enabledLogging()
Disable logging
fun disableLogging()
Is widescreen
fun isWidescreen(): Boolean
Get user info
fun getUserInfo(): UserInfo?