How-to: Display a video stream to the end-user
- 25 Apr 2023
- 1 Minute à lire
- Impression
- SombreLumière
- PDF
How-to: Display a video stream to the end-user
- Mis à jour le 25 Apr 2023
- 1 Minute à lire
- Impression
- SombreLumière
- PDF
The content is currently unavailable in French. You are viewing the default English version.
Résumé de l’article
Avez-vous trouvé ce résumé utile ?
Merci pour vos commentaires
It is recommended to use the helper VideoView class to simplify the interaction with video tracks in the SDK.
Example:
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import com.screenmeet.live.R
import com.screenmeet.live.databinding.FragmentVideoBinding
import com.screenmeet.live.util.viewBinding
import com.screenmeet.sdk.Participant
import com.screenmeet.sdk.ScreenMeet
import com.screenmeet.sdk.SessionEventListener
import com.screenmeet.sdk.VideoElement
import org.webrtc.EglBase
class VideoFragment: Fragment(R.layout.fragment_video) {
private val binding by viewBinding(FragmentVideoBinding::bind)
private lateinit var eglBase: EglBase.Context
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Register EglBase context object in your Fragment
eglBase = ScreenMeet.eglContext!!
// Prepare your custom VideoView for rendering
binding.videoViewRenderer.init(eglBase, null)
}
override fun onResume() {
super.onResume()
// Subscribe to session events
ScreenMeet.registerEventListener(eventListener)
// Restore Video Rendering
ScreenMeet.uiVideos().firstOrNull()?.let {
binding.activeStreamRenderer.zoomRenderer.render(it.track)
}
}
override fun onPause() {
super.onPause()
// Unsubscribe from session events
ScreenMeet.unregisterEventListener(eventListener)
// Clear Video Renderer
binding.activeStreamRenderer.zoomRenderer.clear()
}
private val eventListener = object : SessionEventListener {
override fun onParticipantVideoCreated(
participant: Participant,
video: VideoElement
) {
// Start rendering a new video
binding.activeStreamRenderer.zoomRenderer.render(video.track)
}
override fun onParticipantVideoStopped(
participant: Participant,
source: ScreenMeet.VideoSource
) {
// Clear Video Renderer
binding.activeStreamRenderer.zoomRenderer.clear()
}
}
}
Cet article vous a-t-il été utile ?