No se puede obtener los metadatos del video utilizando el exoplayer sin reproducción.
Estoy intentando obtener los metadatos de un video utilizando Exoplayer sin reproducción, como se menciona en el documento.
Cuando intento ejecutar, no puedo obtener la lista de pistas de audio y pistas de subtítulos del archivo de video local.
MediaItem mediaItem = MediaItem.fromUri(videoUrl);
ListenableFuture<TrackGroupArray> trackGroupsFuture = MetadataRetriever.retrieveMetadata(this, mediaItem);
Futures.addCallback(trackGroupsFuture, new FutureCallback<TrackGroupArray>() {
@Override
public void onSuccess(TrackGroupArray trackGroups) {
for(int i = 0; i < trackGroups.length; i++){
String format = trackGroups.get(i).getFormat(0).sampleMimeType;
String lang = trackGroups.get(i).getFormat(0).language;
String id = trackGroups.get(i).getFormat(0).id;
if(format.contains("audio") && id != null && lang != null){
Log.d(TAG, "onSuccess: " + lang + " " + id);
}
}
}
@Override
public void onFailure(Throwable t) {
//handleFailure(t);
Log.d(TAG, "onFailure: " + t);
}
}, executor);
¿Alguien puede ayudarme? ¿Cómo puedo obtener la lista de pistas disponibles en un video?
Aquí hay un enlace de video de muestra: https://storage.googleapis.com/jlplayer/Dolittle.mkv
Por ejemplo, el video de muestra anterior contiene un subtítulo en inglés, una pista de audio en hindi y una pista de audio en inglés. Entonces, ¿cómo puedo extraer esas pistas?
davy.ai
Para obtener una lista de las pistas disponibles en un video usando ExoPlayer sin reproducción, puedes usar la clase MetadataRetriever.
Aquí hay un ejemplo de código que puedes usar:
En este fragmento de código, primero creamos un objeto
MediaItem
desde elvideoUrl
. Luego, usamos la claseMetadataRetriever
para obtener los metadatos del archivo de video. Agregamos una devolución de llamada al objetoListenableFuture
que se llamará cuando se hayan recuperado los metadatos con éxito o si hay un error.En el método
onSuccess()
, iteramos sobreTrackGroupArray
y registramos la información para cada pista de audio y subtítulos. Verificamos el formato, el idioma y el ID de la pista para asegurarnos de que no sean nulos antes de registrar la información.Puedes pasar la dirección URL del video de muestra
https://storage.googleapis.com/jlplayer/Dolittle.mkv` al método
MediaItem.fromUri()` para obtener sus metadatos. Una vez que ejecutes el código, deberías ver registros de las pistas de audio y subtítulos disponibles en el video.