нужно обработать ошибку в сервисе

в сервисе использую exoplayer. сервис такой.

class ServicePlayer: Service(), Runnable, Player.EventListener {

до событий Player.EventListener дело не доходит, потому что где-то в главном потоке происходит ошибка. Я поставил несколько переопределенных функций от EventListener, но они не вызываются. ошибка вот такая. эта ошибка возникает, если радиостанция не работала во время запуска плеера.

2021-01-20 15:59:32.111 30257-31816/com.abc_production.radioplayer E/ExoPlayerImplInternal: Playback error
      com.google.android.exoplayer2.ExoPlaybackException: Source error
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:554)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:237)
        at android.os.HandlerThread.run(HandlerThread.java:67)
     Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 404
        at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:341)
        at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:199)
        at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
        at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1017)
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)

а если я останавливаю трансляцию, когда плеер работает и слышно музыку, то просто вызывается метод stop в логах это видно. Но не вызывается ни одна функция из EventListener. я пока новичок в android разработке и не знаю как с этим работать, но я думаю что можно как то получать сообщения главного потока и парсить определенные ошибки.


Ответы (0 шт):