Как выделить текстовое изображение, когда звук в формате mp составляет от 3 до 5 с?

У меня есть ситуация в моем приложении, где у меня есть TextView и audio. при запуске audio никакая буква не выделяется, но когда audio находится на 3-й секунде, TextView подсвечивается, а когда audio находится на 5-й секунде, TextView не подсвечивается.

Вот мой код TextView с audio, когда я нажимаю на TextView, он выполняет этот код, но не может получить то, что мне нужно.

try {
    if (dialog.isShowing()) {
        mp.reset();
        //p5_1_a.setTextColor(Color.BLACK);
        afd = getActivity().getAssets().openFd("q1p6_1.mp3");
        mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
        mp.prepare();
        mp.start();
        while (mp.getDuration() < 1.5) {
            p5_1_a.setTextColor(Color.BLACK);
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}

Почему mp.getDuration() < 1.5? MediaPlayer.getDuration() возвращает продолжительность в миллисекундах, поэтому это должно быть 3000 миллисекунды.

codeconscious 11.04.2018 12:43

Я уже пробовал, это не выделение текста в течение 3 секунд, просто воспроизведение всего звука

Fahad Jameel 11.04.2018 13:06

Причина, по которой это не работает, заключается в том, что код проверяет условие в цикле while до того, как продолжительность превысит три секунды. Боюсь, я не знаю наиболее оптимального решения, но одна работа - сделать что-то вроде этого pastebin.com/dJS3BwcA Спасибо :)

codeconscious 11.04.2018 19:08
0
3
28
0

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