#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 уже знает, откуда прикрепить это изображение