79189930

Date: 2024-11-14 18:02:46
Score: 1
Natty:
Report link

if anyone is still confused how to:

  1. create res/layout/lb_playback_fragment.xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/playback_fragment_root"
    android:layout_width="match_parent"
    android:transitionGroup="false"
    android:layout_height="match_parent">
    <com.phonegap.voyo.utils.NonOverlappingFrameLayout
        android:id="@+id/playback_fragment_background"
        android:transitionGroup="false"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <com.phonegap.voyo.utils.NonOverlappingFrameLayout
        android:id="@+id/playback_controls_dock"
        android:transitionGroup="true"
        android:layout_height="match_parent"
        android:layout_width="match_parent"/>
    
    <androidx.media3.ui.SubtitleView
        android:id="@+id/exoSubtitles"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal"
        android:layout_marginBottom="32dp"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp" />
    
    <androidx.media3.ui.AspectRatioFrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center">
    
        <androidx.media3.ui.SubtitleView
            android:id="@+id/leanback_subtitles"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </androidx.media3.ui.AspectRatioFrameLayout>
    
  2. create class NonOverlappingFrameLayout.java

    package com.phonegap.voyo.utils;

    import android.content.Context; import android.util.AttributeSet; import android.widget.FrameLayout; public class NonOverlappingFrameLayout extends FrameLayout { public NonOverlappingFrameLayout(Context context) { this(context, null); } public NonOverlappingFrameLayout(Context context, AttributeSet attrs) { super(context, attrs, 0); } public NonOverlappingFrameLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } /** * Avoid creating hardware layer when Transition is animating alpha. */ @Override public boolean hasOverlappingRendering() { return false; } }

  3. inside PlayerFragment

    subtitleView = requireActivity().findViewById(R.id.leanback_subtitles)
    

    player?.addListener(object:Player.Listener{ @Deprecated("Deprecated in Java") @Suppress("DEPRECATION") override fun onCues(cues: MutableList) { super.onCues(cues) subtitleView?.setCues(cues) } })

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • User mentioned (1): @Override
  • Low reputation (1):
Posted by: Pastafarian