Компаратор ExoPlayer TrackSelectionDialog не работает ⇐ JAVA
-
Anonymous
Компаратор ExoPlayer TrackSelectionDialog не работает
Я печатаю видеодорожки пользователю в формате «высота» + «p». По умолчанию TrackSelectionDialog печатает их, скажем, в случайном порядке. Я хочу изменить их порядок с минимального на максимальный.
Итак, у меня есть это в моем TrackSelectionView init:
/** * Инициализируйте представление для выбора треков для указанного средства рендеринга, используя {@link MappedTrackInfo} и * набор {@link DefaultTrackSelector.Parameters}. * * @param mappedTrackInfo {@link MappedTrackInfo}. * @param rendererIndex Индекс средства рендеринга. * @param isDisabled Должен ли механизм рендеринга изначально отображаться как отключенный. * @param overrides Список начальных переопределений, которые будут показаны для этого средства визуализации. Должно быть максимум * одно переопределение для каждой группы треков. Если {@link #setAllowMultipleOverrides(boolean)} этого не произошло * установлено значение {@code true}, используется только первое переопределение. * @param trackFormatComparator Необязательный компаратор, используемый для определения порядка отображения * треки внутри каждой группы треков. * @param прослушиватель Дополнительный прослушиватель обновлений выбора треков. */ публичная недействительная инициализация( MappedTrackInfo сопоставленныйTrackInfo, int rendererIndex, логическое значение isDisabled, List переопределяет, @Nullable Comparator trackFormatComparator, @Nullable прослушиватель TrackSelectionListener) { this.mappedTrackInfo = MappedTrackInfo; this.rendererIndex = rendererIndex; this.isDisabled = isDisabled; если (trackFormatComparator == ноль) this.trackInfoComparator = null; еще this.trackInfoComparator = новый Comparator() { @Override public int Compare(TrackInfo o1, TrackInfo o2) { return trackFormatComparator.compare(o1.format, o2.format); } }; this.listener = слушатель; int maxOverrides =allowMultipleOverrides? overrides.size() : Math.min(overrides.size(), 1); for (int я = 0; я isShowingTrackSelectionDialog = false); trackSelectionDialog.setTrackFormatComparator((o1, o2) -> Math.max(o1.height, o2.height)); trackSelectionDialog.show(getSupportFragmentManager(), null); Но ничего не происходит. Видеотреки по-прежнему отсортированы по умолчанию.
Что не так с моим кодом или какую часть кода я забыл?
Я печатаю видеодорожки пользователю в формате «высота» + «p». По умолчанию TrackSelectionDialog печатает их, скажем, в случайном порядке. Я хочу изменить их порядок с минимального на максимальный.
Итак, у меня есть это в моем TrackSelectionView init:
/** * Инициализируйте представление для выбора треков для указанного средства рендеринга, используя {@link MappedTrackInfo} и * набор {@link DefaultTrackSelector.Parameters}. * * @param mappedTrackInfo {@link MappedTrackInfo}. * @param rendererIndex Индекс средства рендеринга. * @param isDisabled Должен ли механизм рендеринга изначально отображаться как отключенный. * @param overrides Список начальных переопределений, которые будут показаны для этого средства визуализации. Должно быть максимум * одно переопределение для каждой группы треков. Если {@link #setAllowMultipleOverrides(boolean)} этого не произошло * установлено значение {@code true}, используется только первое переопределение. * @param trackFormatComparator Необязательный компаратор, используемый для определения порядка отображения * треки внутри каждой группы треков. * @param прослушиватель Дополнительный прослушиватель обновлений выбора треков. */ публичная недействительная инициализация( MappedTrackInfo сопоставленныйTrackInfo, int rendererIndex, логическое значение isDisabled, List переопределяет, @Nullable Comparator trackFormatComparator, @Nullable прослушиватель TrackSelectionListener) { this.mappedTrackInfo = MappedTrackInfo; this.rendererIndex = rendererIndex; this.isDisabled = isDisabled; если (trackFormatComparator == ноль) this.trackInfoComparator = null; еще this.trackInfoComparator = новый Comparator() { @Override public int Compare(TrackInfo o1, TrackInfo o2) { return trackFormatComparator.compare(o1.format, o2.format); } }; this.listener = слушатель; int maxOverrides =allowMultipleOverrides? overrides.size() : Math.min(overrides.size(), 1); for (int я = 0; я isShowingTrackSelectionDialog = false); trackSelectionDialog.setTrackFormatComparator((o1, o2) -> Math.max(o1.height, o2.height)); trackSelectionDialog.show(getSupportFragmentManager(), null); Но ничего не происходит. Видеотреки по-прежнему отсортированы по умолчанию.
Что не так с моим кодом или какую часть кода я забыл?
Мобильная версия