MediaPlayer seekTo случайной продолжительности

У меня есть MediaPlayer, и я транслирую файл MP3 по ссылке, я хочу, чтобы музыка была рандомизирована в зависимости от продолжительности MP3.

I have tried using the Random class and getDuration() from MediaPlayer and seekTo() but failed maybe because of buffering issue.

This below code just reset() the file because i have failed getting it to a random duration. Please help me out

try {
      mediaPlayer.setDataSource(MainActivity.this, uri);
      mediaPlayer.prepare();
      mediaPlayer.start();
     } catch (IOException e) {
      dialog.dismiss();
}

getDuration возвращает продолжительность трека или любого другого звука в mp3-файле. Вы, вероятно, ищете позицию, которая находится вне диапазона. Вы можете искать только до 0 - общей продолжительности (возвращается getDuration ()).

user221256 05.04.2018 19:12

я знаю, поэтому я спрашиваю, как создать случайное целое число на основе общей продолжительности без отрицательных случайных чисел

GGWP 06.04.2018 02:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте это для случайной позиции:

randomPosition = ThreadLocalRandom.current().nextInt(0, mediaPlayer.getDuartion() + 1);

Затем ищите:

mediaPlayer.seekTo(randomPosition);

Другие вопросы по теме