Kotlin
Bereitstellung von Containern für Videoansichten
Das Vonage SDK liefert View Objekte für Publisher und Subscriber. Das Beispiel hostet sie in FrameLayout Container, die aus Compose über AndroidView:
Kopieren
@Composable
private fun VideoContainers(
onContainersReady: (subscriber: FrameLayout, publisher: FrameLayout) -> Unit,
) {
AndroidView(
factory = { ctx ->
val root = FrameLayout(ctx)
val subscriberFrame = FrameLayout(ctx) // full screen
val publisherFrame = FrameLayout(ctx) // small overlay, bottom-end
root.addView(subscriberFrame)
root.addView(publisherFrame)
onContainersReady(subscriberFrame, publisherFrame)
root
},
modifier = Modifier.fillMaxSize(),
)
}
Übergeben Sie die Container an Ihre Aktivität, damit diese die Publisher- und Subscriber-Ansichten hinzufügen kann, wenn die Sitzung verbunden wird:
Kopieren
VideoCallScreen(
isInPipMode = isInPipMode,
onContainersReady = { subscriberFrame, publisherFrame ->
subscriberViewContainer = subscriberFrame
publisherViewContainer = publisherFrame
containersReady = true
tryStartSession()
},
onEnterPictureInPicture = ::enterPictureInPicture,
)
Die Ansicht anbringen, wenn sie fertig ist
Unter onConnectedveröffentlichen und die Publisher-Ansicht anhängen:
Kopieren
override fun onConnected(session: Session) {
if (publisher == null) {
publisher = Publisher.Builder(applicationContext).build()
session.publish(publisher)
publisherViewContainer.addView(publisher?.view)
if (publisher?.view is GLSurfaceView) {
(publisher?.view as GLSurfaceView).setZOrderOnTop(true)
}
}
}
Abonnieren, wenn ein entfernter Stream eintrifft:
Kopieren
override fun onStreamReceived(session: Session, stream: Stream) {
if (subscriber == null) {
subscriber = Subscriber.Builder(applicationContext, stream).build()
session.subscribe(subscriber)
subscriberViewContainer.addView(subscriber?.view)
}
}
Bild im Bild
Erfahren Sie, wie Sie mit dem Vonage Video SDK Picture-in-Picture-Funktionen zu Ihrer Anwendung hinzufügen können.
Erhältlich bei:
Schritte
1
Einführung2
Erste Schritte3
Ein neues Projekt erstellen4
Hinzufügen des Android-SDK5
Authentifizierung einrichten6
Beantragung von Genehmigungen7
Aktivieren von Bild-in-Bild auf Ihrer Aktivität8
Bereitstellung von Containern für Videoansichten9
Starten von Picture-in-Picture10
Verwalten von Änderungen im PiP-Modus11
Ausführen der App12
Schlussfolgerung