--- title: "How-to: Display a video stream to the end-user" slug: "android-sdk-howto-video-stream" updated: 2023-04-25T22:12:43Z published: 2023-04-25T22:12:43Z canonical: "docs.screenmeet.com/android-sdk-howto-video-stream" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.screenmeet.com/llms.txt > Use this file to discover all available pages before exploring further. # How-to: Display a video stream to the end-user It is recommended to use the helper **VideoView** class to simplify the interaction with video tracks in the SDK. Example: ```java 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() } } } ```