Кто-нибудь может сказать мне, как я могу извлечь мета из тегов ID3 потока HLS.
Попробуйте следующий код. https://medium.com/google-exoplayer/exoplayer-2-1-whats-new-2832c09fedab
@Override
public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
for (int i = 0; i < trackGroups.length; i++) {
TrackGroup trackGroup = trackGroups.get(i);
for (int j = 0; j < trackGroup.length; j++) {
Metadata trackMetadata = trackGroup.getFormat(j).metadata;
if (trackMetadata != null) {
// We found metadata. Do something with it here!
}
}
}
ОБНОВИТЬ: Если вы хотите получать и обрабатывать метаданные ID3, добавьте в плеер EventListener через ExoPlayer.addListener.
EXOPlayer.addListener(new Player.EventListener() {
@Override
public void onTimelineChanged(Timeline timeline, @Nullable Object manifest, int reason) {
}
@Override
public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
for (int i = 0; i < trackGroups.length; i++) {
TrackGroup trackGroup = trackGroups.get(i);
for (int j = 0; j < trackGroup.length; j++) {
Metadata trackMetadata = trackGroup.getFormat(j).metadata;
if (trackMetadata != null) {
// We found metadata. Do something with it here!
}
}
}
}
@Override
public void onLoadingChanged(boolean isLoading) {
}
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
}
@Override
public void onRepeatModeChanged(int repeatMode) {
}
@Override
public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
}
@Override
public void onPlayerError(ExoPlaybackException error) {
}
@Override
public void onPositionDiscontinuity(int reason) {
}
@Override
public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
}
@Override
public void onSeekProcessed() {
}
});
Пользователь: stackoverflow.com/users/1236581/fergdev сообщил, что решил эту проблему с помощью exoplayer. Но не смог написать комментарий, так как у меня нет репутации. Если бы он мог помочь, это очень помогло бы мне.
Не удалось переопределить метод onTracksChanged в моем коде. он показывает, что «метод не может переопределить методы суперкласса».