MediaPlayer onError никогда не вызывается

MediaPlayer onError никогда не вызывается, пробовал ставить даже после start () но разница не меняется, возможно проблема в асинхронных вызовах ... но есть ли решение без отключения prepareAsync ()?

public void play() {
    try {
        if (player != null){
            player.stop();
            player.release();
            player = null;
        }

        player = new MediaPlayer();
        player.setLooping(false);
        surfaceHolder.addCallback(new SurfaceHolder.Callback() {
            @Override
            public void surfaceCreated(SurfaceHolder surfaceHolder) {
                player.setDisplay(surfaceHolder);
            }

            @Override
            public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {}

            @Override
            public void surfaceDestroyed(SurfaceHolder surfaceHolder) {}
        });

        playerView.setVisibility(View.INVISIBLE);
        player.setDataSource(urls[current]);
        player.prepareAsync();
        player.setOnErrorListener((mediaPlayer, error, i1) -> {
            Log.e("ErrorListener", "error = " + error);
            return false;
        });
        player.setOnPreparedListener(mediaPlayer -> {
            player.start();
            playerView.setVisibility(View.VISIBLE);
        });

    } catch (Exception ex){
        menu.progressDialog.dismiss();
        Log.e("ErrorException", "" + ex.toString());
    }
}

Void play () находится в этом классе. Где VideoPlayer - это «интерфейс»:

public class myMediaPlayer implements VideoPlayer {
}

Ошибка определенно есть. но вызов не происходит, за исключением того, что "OnPrepared" не вызывается.

Зарегистрируйте setOnPreparedListener, чтобы узнать, вызывается ли он. Кроме того, предоставьте дополнительную информацию, сбой и т. д.

HB. 04.01.2019 12:42

setOnPreparedListener () также не вызывается. И есть ошибка: E / PlaylistFetcher: не удалось загрузить плейлист по url 'http: // <suppressed>' Но я не могу ее поймать.

Dima Chibuk 04.01.2019 12:58

Что такое urls[current]? Откуда вы берете данные?

HB. 04.01.2019 13:00

Это список String []. Вот пример ссылки: persik.by/stream/2853/374241/10228.m3u8

Dima Chibuk 04.01.2019 13:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
90
0

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