Package-level declarations

Types

Link copied to clipboard
class Call(client: StreamVideo, val type: String, val id: String, val user: User)

The call class gives you access to all call level API calls

Link copied to clipboard
class CallHealthMonitor(val call: Call, val callScope: CoroutineScope, val onIceRecoveryFailed: () -> Unit)

Monitors

Link copied to clipboard
class CallState(client: StreamVideo, call: Call, user: User, scope: CoroutineScope)

The CallState class keeps all state for a call It's available on every call object

Link copied to clipboard
class CallStats(val call: Call, val callScope: CoroutineScope)
Link copied to clipboard
data class CallStatsReport(val publisher: RtcStatsReport?, val subscriber: RtcStatsReport?, val local: LocalStats?, val stateStats: CallStats)
Link copied to clipboard
data class CameraDeviceWrapped(val id: String, val characteristics: CameraCharacteristics?, val supportedFormats: MutableList<CameraEnumerationAndroid.CaptureFormat>?, val maxResolution: Int, val direction: CameraDirection?)
Link copied to clipboard
sealed class CameraDirection
Link copied to clipboard
class CameraManager(val mediaManager: MediaManagerImpl, val eglBaseContext: EglBase.Context, defaultCameraDirection: CameraDirection = CameraDirection.Front)

The CameraManager class makes it easy to manage the camera for your video call

Link copied to clipboard
Link copied to clipboard
sealed interface ConnectionState
Link copied to clipboard
data class CreateCallOptions(val memberIds: List<String>? = null, val members: List<MemberRequest>? = null, val custom: Map<String, Any>? = null, val settings: CallSettingsRequest? = null, val startsAt: OffsetDateTime? = null, val team: String? = null)
Link copied to clipboard
sealed class DeviceStatus
Link copied to clipboard
class EventSubscription(val listener: VideoEventListener<VideoEvent>, val filter: (VideoEvent) -> Boolean? = null)
Link copied to clipboard
sealed class GEO
Link copied to clipboard
data class LocalStats(val resolution: CameraEnumerationAndroid.CaptureFormat?, val availableResolutions: List<CameraEnumerationAndroid.CaptureFormat>?, val maxResolution: CameraEnumerationAndroid.CaptureFormat?, val sfu: String, val os: String, val sdkVersion: String, val deviceModel: String)
Link copied to clipboard
class MediaManagerImpl(val context: Context, val call: Call, val scope: CoroutineScope, val eglBaseContext: EglBase.Context, val audioUsage: Int = defaultAudioUsage)

Wrap all the audio/video interactions This makes it easier to test our codebase

Link copied to clipboard
data class MediaStatsInfo(val qualityLimit: String?, val jitter: Double?, val width: Long?, val height: Long?, val fps: Double?, val deviceLatency: Double?)
Link copied to clipboard
data class MemberState(val user: User, val custom: Map<String, Any?>, val role: String?, val createdAt: OffsetDateTime, val updatedAt: OffsetDateTime, val deletedAt: OffsetDateTime? = null, val acceptedAt: OffsetDateTime? = null, val rejectedAt: OffsetDateTime? = null)
Link copied to clipboard
class MicrophoneManager(val mediaManager: MediaManagerImpl, val audioUsage: Int)

The Microphone manager makes it easy to use your microphone in a call

Link copied to clipboard
data class ParticipantState(var sessionId: String = "", val call: Call, initialUserId: String, var trackLookupPrefix: String = "")

Represents the state of a participant in a call.

Link copied to clipboard
class PeerConnectionStats(scope: CoroutineScope)
Link copied to clipboard
sealed interface RealtimeConnection
Link copied to clipboard
sealed interface RingingState
Link copied to clipboard
class ScreenShareManager(val mediaManager: MediaManagerImpl, val eglBaseContext: EglBase.Context)
Link copied to clipboard
class SpeakerManager(val mediaManager: MediaManagerImpl, val microphoneManager: MicrophoneManager, val initialVolume: Int? = null)
Link copied to clipboard

The main interface to control the Video calls. StreamVideoClient implements this interface.

Link copied to clipboard
class StreamVideoBuilder @JvmOverloads constructor(context: Context, apiKey: ApiKey, geo: GEO = GEO.GlobalEdgeNetwork, user: User = User.anonymous(), token: UserToken = "", legacyTokenProvider: suspend (error: Throwable?) -> String? = null, tokenProvider: TokenProvider = legacyTokenProvider?.let { legacy -> object : TokenProvider { override suspend fun loadToken(): String = legacy.invoke(null) } } ?: ConstantTokenProvider(token), loggingLevel: LoggingLevel = LoggingLevel(), notificationConfig: NotificationConfig = NotificationConfig(), ringNotification: (call: Call) -> Notification?? = null, connectionTimeoutInMs: Long = 10000, ensureSingleInstance: Boolean = true, videoDomain: String = "video.stream-io-api.com", runForegroundServiceForCalls: Boolean = true, callServiceConfig: CallServiceConfig? = null, localSfuAddress: String? = null, sounds: Sounds = defaultResourcesRingingConfig(context).toSounds(), crashOnMissingPermission: Boolean = false, permissionCheck: StreamPermissionCheck = DefaultStreamPermissionCheck(), audioUsage: Int = defaultAudioUsage, appName: String? = null, audioProcessing: ManagedAudioProcessingFactory? = null, leaveAfterDisconnectSeconds: Long = 30)

The StreamVideoBuilder is used to create a new instance of the StreamVideo client. This is the most essential class to connect to the Stream server and initialize everything you need to implement audio/video calls.

Link copied to clipboard

Properties

Link copied to clipboard

How long do we keep trying to make a full-reconnect (once the SFU signalling WS went down)

Inherited functions

Link copied to clipboard

Extension function that makes it easy to use on kotlin, but keeps Java usable as well

Link copied to clipboard
Link copied to clipboard
fun MediaStreamTrack.trySetEnabled(enabled: Boolean)