Closed sadr0b0t closed 1 year ago
Да, поломалось еще до рефактора https://github.com/sadr0b0t/yashlang/issues/7
ролик например этот https://www.youtube.com/watch?v=miVsejHgubo
В общем, проблема в том, что объект-поток появляется в списке, но поле url в нем null. А режим "только аудио" включается только если сам объект-поток не выбран для ролика. Возможно, проблема в NewPipeExtractor.
playVideoStream(
(videoItem.getPlaybackStreams().getVideoStream() != null ? videoItem.getPlaybackStreams().getVideoStream().getUrl() : null),
(videoItem.getPlaybackStreams().getAudioStream() != null ? videoItem.getPlaybackStreams().getAudioStream().getUrl() : null),
videoItem.getPausedAt(),
pauseOnLoad);
В любом случае в коде следует учесть эту ситуацию и наличие объекта-потока при отсутствии url рассматривать как ошибку загрузки, чтобы плеер попробовать автоматически переключиться на другой поток, у которого найдется url.
вариант: не показывать такой поток в списке доступных изначально
Ролики с моего кананала если выбираю "предпочитать качество 480p", начинают играть поток аудио, а видео не показывают - вместо него растянутая иконка-превью.
Проявляется для ситуаций, когда потоки видео и аудио отдельно. Если выбрать поток видео+аудио, то всё ок. Качество 720p тоже ок даже если поток видео отделен от аудио.
Скорее всего срабатывает что-то из этого алгоритма: https://github.com/sadr0b0t/yashlang/issues/134
Но если не загрузилось видео, то нужно показывать режим "только аудио" (иконка "нота" в месте выбора потока)