3 votes

Comment implémenter ExoPlayer avec Databinding ?

J'ai une classe activity_player dans lequel j'ai exoplayer2.ui.PlayerView et j'ai créé exo_player_control_view afin qu'il remplace les contrôles par défaut dans ExoPlayer. Je voulais donc utiliser le Databinding dans la vue du contrôle personnalisé nouvellement créé, mais je ne sais pas comment le faire. Un conseil ?

Il s'agit en fait d'une question ouverte. aquí mais qui n'a pas encore été résolue. Y a-t-il quelqu'un qui a trouvé une solution de rechange pour faire de la exo_player_control_view La liaison de données est-elle possible ?

-1voto

ABr Points 199

Vous pouvez utiliser une variable de liaison dans fragment/activité pour accéder au playerView dans fragment/activité et

  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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X