Skip to content Skip to sidebar Skip to footer

How To Implement Exoplayer With Databinding?

I have a class activity_player layout in which I have exoplayer2.ui.PlayerView and I created exo_player_control_view so that it overrides default controls in ExoPlayer. So I wanted

Solution 1:

Use Like this >>>>>

privateval binding by lazy {
     ActivityPipVideoPlayerBinding.inflate(layoutInflater)}

privateval exoPLayerBinding by lazy {
    VdoExoControlViewBinding.inflate(LayoutInflater.from(this), binding.root, true)
}

Solution 2:

You can use binding variable inside fragment/activity to access the playerView inside fragment/activity and

val uri: Uri? = if (url is String) Uri.parse(url as String?) else url as Uri?
    val trackSelector =
        DefaultTrackSelector(AdaptiveTrackSelection.Factory(DefaultBandwidthMeter()))
    val player: SimpleExoPlayer = ExoPlayerFactory.newSimpleInstance(view.context, trackSelector)
    val dataSourceFactory = DefaultDataSourceFactory(view.context, "ua")
    val mediaSource =
        ExtractorMediaSource(uri, dataSourceFactory, DefaultExtractorsFactory(), null, null)
    player.prepare(mediaSource)
    player.apply {
        volume = 0f
        repeatMode = Player.REPEAT_MODE_ONE
        playWhenReady = true
        videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT
    }
    binding.playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL)
    binding.playerView.player = player

Post a Comment for "How To Implement Exoplayer With Databinding?"