Как проверить играет ли музыка в mediaPlayer?

250
04 февраля 2018, 00:58

Пробовал использовать этот код, но ничего не заработало. Может есть еще способы, как проверить играет ли музыка?

mediaPlayer = new MediaPlayer();
                  mediaPlayer.setDataSource(potok[posit]);
                  mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                  mediaPlayer.setOnPreparedListener(this);
                  mediaPlayer.prepareAsync();
                  mediaPlayer.start();
                progressBar.setVisibility(ProgressBar.VISIBLE);
                if(mediaPlayer.isPlaying()){
                    progressBar.setVisibility(ProgressBar.INVISIBLE);
                }else{
                    progressBar.setVisibility(ProgressBar.VISIBLE);
                }
Answer 1

Вам вот этот код надо вызвать в коллбеке лиснера onPreparedListener Ответ, почему так - вы асинхронно готовите плеер к проигрыванию, и весь код ниже вызывается синхронно, т.е. раньше, чем отработает коллбек

@Override    
void onPrepared(MediaPlayer mediaPlayer) {
                    mediaPlayer.start();
                    progressBar.setVisibility(ProgressBar.VISIBLE);
                    if(mediaPlayer.isPlaying()){
                        progressBar.setVisibility(ProgressBar.INVISIBLE);
                    }else{
                        progressBar.setVisibility(ProgressBar.VISIBLE);
                    }
    }
READ ALSO
Удаление символов из строки java

Удаление символов из строки java

Есть список ненужных символов, допустим String taboo = "1234567890!@#$%^&*()_+!№;%:?*/\\\"~";`

292
Создание объектов с одного класса в другом

Создание объектов с одного класса в другом

Здравствуйте, можно ли как-то унаследовать форму JFrame создавая на нем новые объекты не закрывая и не создавая его каждый разТо есть есть у меня...

306
Отображение данных в RecyclerView

Отображение данных в RecyclerView

Есть вот такой Json http://samplesopenweathermap

258
Правильное подключение к БД

Правильное подключение к БД

Задача вот в чем -- нужно вставить в таблицу (например) 10000 строкЧерез ExecutorService сделал чтобы каждая строка вставлялась в отдельном потоке

239