Кнопки Exoplayer next и prev не работают. Следующая кнопка остается неактивной / невидимой - PullRequest
0 голосов
/ 29 февраля 2020

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

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_player);

        exonext = findViewById(R.id.exo_next);
        exonext.setVisibility(View.VISIBLE);
        exoprev = findViewById(R.id.exo_prev);

exonext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (positionx<friends.size()) {

                    if (positionx == firstposition) {
                        positionx = positionx + 1;
                        String nextsong = friends.get(positionx);
                        mediaSource = new ExtractorMediaSource(Uri.parse(nextsong), dataSourceFactory, extractorsFactory, null, null);

                        player.prepare(mediaSource);
                        player.setPlayWhenReady(true);



                    } 
                     else {
                        positionx = positionx + 1;
                        String nextsong = friends.get(positionx);

                        mediaSource = new ExtractorMediaSource(Uri.parse(nextsong), dataSourceFactory, extractorsFactory, null, null);

                        player.prepare(mediaSource);
                        player.setPlayWhenReady(true);


                    }
                }
            }
        });

        exoprev.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (positionx<=0) {

                    if (positionx == firstposition) {
                        positionx = positionx - 1;
                        String nextsong = friends.get(positionx);

                        mediaSource = new ExtractorMediaSource(Uri.parse(nextsong), dataSourceFactory, extractorsFactory, null, null);

                        player.prepare(mediaSource);
                        player.setPlayWhenReady(true);

                    } 

                   else {
                        positionx = positionx - 1;
                        String nextsong = friends.get(positionx);

                        mediaSource = new ExtractorMediaSource(Uri.parse(nextsong), dataSourceFactory, extractorsFactory, null, null);

                        player.prepare(mediaSource);
                        player.setPlayWhenReady(true);


                    }
                }
            }
        });

}

Кроме того, как я могу показать следующую кнопку всегда активной / видимой или есть ли способ изменить идентификаторы следующей и предыдущей кнопок exoplayer в файле exo_player_control_view. xml? Спасибо

1 Ответ

0 голосов
/ 17 марта 2020

Если вы используете пользовательские элементы управления для воспроизведения предыдущей и следующей песни, используйте свой собственный значок / кнопку и задайте стиль по умолчанию, например, такой:

<ImageButton
        android:id="@+id/exo_prev"
        style="@style/ExoMediaButton.Previous"
        android:layout_width="20dp"
        android:layout_height="22dp"
        android:layout_marginTop="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/exo_center_view"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/exo_screenlock"
        app:layout_constraintTop_toBottomOf="@+id/exo_progress"
        tools:ignore="VectorDrawableCompat" />

и то же самое для следующей кнопки, она будет работать автоматически для вас. Вы не можете изменить идентификатор предыдущего butto. Почему вы хотите купить то, что у вас уже есть в exoplayer. Просто go для настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...