问题描述
我将如何将 Android auto 与 Exo Player 一起使用?我想我需要某种服务设置?但随着信息的发展,我真的找不到太多。我在 Android 自动开发页面上找到了这个:
https://developer.android.com/training/cars
但我不确定如何使用 Exo Player 实现。
我的所有 Explayer 控件都有一个自定义布局,如下所示
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/ic_background">
<ImageView
android:id="@+id/iv_logo_spinner"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_marginStart="55dp"
android:layout_marginLeft="55dp"
android:layout_marginTop="215dp"
android:layout_marginEnd="56dp"
android:layout_marginRight="56dp"
android:src="@drawable/ic_logohex"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:orientation="horizontal"
android:paddingTop="4dp"
app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<ImageButton
android:id="@id/exo_prev"
style="@style/ExoMediaButton.PrevIoUs"
android:tint="@color/purple_700"
android:tintMode="src_in" />
<ImageButton
android:id="@id/exo_rew"
style="@style/ExoMediaButton.Rewind"
android:tint="@color/purple_700"
android:tintMode="src_in" />
<ImageButton
android:id="@id/exo_shuffle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tint="@color/purple_700"
android:tintMode="src_in" />
<ImageButton
android:id="@id/exo_repeat_toggle"
style="@style/ExoMediaButton"
android:tint="@color/purple_700"
android:tintMode="src_in" />
<ImageButton
android:id="@id/exo_play"
style="@style/ExoMediaButton.Play"
android:src="@drawable/ic_play"
/>
<ImageButton
android:id="@id/exo_pause"
style="@style/ExoMediaButton.Pause"
android:src="@drawable/ic_pause" />
<ImageButton
android:id="@id/exo_ffwd"
style="@style/ExoMediaButton.FastForward"
android:tint="@color/purple_700"
android:tintMode="src_in" />
<ImageButton
android:id="@id/exo_next"
style="@style/ExoMediaButton.Next"
android:tint="@color/purple_700"
android:tintMode="src_in" />
<ImageButton
android:id="@id/exo_vr"
style="@style/ExoMediaButton.VR"
android:tint="@color/purple_700"
android:tintMode="src_in" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@id/exo_position"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:textColor="#ff323232"
android:textSize="14sp"
android:textStyle="bold" />
<com.google.android.exoplayer2.ui.DefaultTimeBar
android:id="@id/exo_progress"
android:layout_width="0dp"
android:layout_height="26dp"
android:layout_weight="1"
app:played_color="@color/purple_700"
app:unplayed_color="@color/exo_gray" />
<TextView
android:id="@id/exo_duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:textColor="#ff323232"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
我已经覆盖了播放和暂停的 onclick 以适应图像视图上的动画,如下所示:
flashanim = AnimationUtils.loadAnimation(getContext(),R.anim.flash);
play = root.findViewById(R.id.exo_play);
pause = root.findViewById(R.id.exo_pause);
play.setonClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
play.setVisibility(View.GONE);
pause.setVisibility(View.VISIBLE);
imageView.startAnimation(flashanim);
player.play();
}
});
pause.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pause.setVisibility(View.GONE);
play.setVisibility(View.VISIBLE);
imageView.clearanimation();
imageView.setAnimation(null);
player.pause();
}
});
老实说,这是 Android auto 需要访问的仅有的两个按钮。
我已将此添加到清单中,就像文档中所说的那样
<Meta-data android:name="com.google.android.gms.car.application"
android:resource="@xml/automotive_app_desc"/>
并创建伴随它的 XML
<?xml version="1.0" encoding="utf-8"?>
<automotiveApp>
<uses name="media"/>
</automotiveApp>
接下来我可以尝试什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)