Exoplayer — Нужна помощь в прикреплении этого загружаемого изображения из пользовательского макета к действию, чтобы я мог определить события при нажатии

#android #exoplayer #mediacontroller

Вопрос:

Я пытаюсь прикрепить кнопку загрузки к простому макету Exoplayer, добавив изображение рядом с полноэкранным представлением изображения, как это —

  <ImageView
    android:id="@ id/bt_download"
    android:layout_width="24dp"
    android:layout_height="24dp"
    android:src="@drawable/ic_file_download_white"
    android:scaleType="fitCenter"/>

   <ImageView
    android:id="@ id/bt_fullscreen"
    android:layout_width="24dp"
    android:layout_height="24dp"
    android:src="@drawable/exo_controls_fullscreen_enter"
    android:scaleType="fitCenter"/>
 

Вот это custom_controller.xml в котором я прикрепил это изображение.

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:background="#80000000"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 <LinearLayout
  android:orientation="horizontal"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_centerInParent="true">

  <ImageView
   android:id="@ id/exo_rew"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/exo_controls_rewind"
   android:layout_marginEnd="16dp"/>

  <ImageView
   android:id="@ id/exo_play"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/exo_controls_play"/>

  <ImageView
   android:id="@ id/exo_pause"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/exo_controls_pause"/>

  <ImageView
   android:id="@ id/exo_ffwd"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/exo_controls_fastforward"
   android:layout_marginStart="16dp"/>

 </LinearLayout>

 <LinearLayout
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_alignParentBottom="true">

  <LinearLayout
   android:gravity="bottom"
   android:orientation="horizontal"
   android:padding="8dp"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">

   <TextView
    android:textColor="@android:color/white"
    android:id="@ id/exo_position"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

   <TextView
    android:textColor="#ffcbcdc8"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="/"
    android:layout_marginStart="4dp"
    android:layout_marginEnd="4dp"/>

   <TextView
    android:textColor="#ffcbcdc8"
    android:id="@ id/exo_duration"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1.0"/>
    
    <ImageView
    android:id="@ id/bt_download"
    android:layout_width="24dp"
    android:layout_height="24dp"
    android:src="@drawable/ic_file_download_white"
    android:scaleType="fitCenter"/>

   <ImageView
    android:id="@ id/bt_fullscreen"
    android:layout_width="24dp"
    android:layout_height="24dp"
    android:src="@drawable/exo_controls_fullscreen_enter"
    android:scaleType="fitCenter"/>

  </LinearLayout>

  <com.google.android.exoplayer2.ui.DefaultTimeBar
   android:id="@ id/exo_progress"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="-8dp"
   app:buffered_color="#ff95989f"
   app:played_color="#ffff0000"
   app:unplayed_color="#ff45424e"/>

 </LinearLayout>

</RelativeLayout>
 

вот изображение того, как выглядит медиа-контроллер после добавления этого изображения

так что теперь, когда я вызываю эту кнопку из активности игрока с btDownload = player_view.findViewById(R.id.bt_download); компилятором, она говорит —

btDownload не может быть преобразован в переменную

хотя аналогичный метод btFullScreen = player_view.findViewById(R.id.bt_fullscreen); отлично работает для полноэкранной кнопки(изображение), может ли кто-нибудь помочь мне определить эту проблему? и может ли кто-нибудь, пожалуйста, объяснить мне, почему это происходит только с кнопкой загрузки ? .

Комментарии:

1. Вы можете попробовать передать его в ImageView , например, btDownload =(ImageView) player_view.findViewById(R. id.bt_download);

2. Спасибо Vaibhav, ImageView btDownload =(ImageView) player_view.findViewById(R. id.bt_download); работает, вы знаете, почему это полноэкранное изображение не нуждается в кастинге ?

3. Я думаю, что полноэкранный режим предопределен в библиотеке Exoplayer, поэтому Android уже знает, откуда прикрепить это изображение