ExoPlayer: obtiene las canciones metadata de la secuencia HTTP

Yo uso el siguiente código para reproducir un vapor de música de ExaPlayer:

exoPlayer = ExoPlayer.Factory.newInstance(numRenderers, minBufSize, maxBufSize); String url = Helper.getPr().getString("url", "http://mp3.nashe.ru:80/ultra-128.mp3"); Uri uri = Uri.parse(url); Log.i(TAG, "Going to open " + url); Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE); DataSource dataSource = new DefaultUriDataSource(getApplicationContext(), USER_AGENT); ExtractorSampleSource sampleSource = new ExtractorSampleSource(uri, dataSource, allocator, BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE); audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource); exoPlayer.addListener(this); exoPlayer.sendMessage(audioRenderer, MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, volume); exoPlayer.prepare(audioRenderer); exoPlayer.setPlayWhenReady(true); 

Pero no puedo encontrar ninguna información sobre cómo obtener metadatos como artista y el nombre de la canción actual .. ¿Es posible obtener esa información?
Muchas gracias.

3 Solutions collect form web for “ExoPlayer: obtiene las canciones metadata de la secuencia HTTP”

Hay muchos tipos de metadatos en muchos tipos de medios, depende de su flujo. Pero actualmente Exoplayer, sólo analiza los metadatos de los flujos HLS (HTTP Live Streaming) obtienen datos ID3 del flujo.

Como se puede ver en el problema del repositorio github, este es el estado actual de los metadatos en Exoplayer lib (agosto de 2015): https://github.com/google/ExoPlayer/issues/704

Si es tu caso de flujo, te recomiendo que descargue la demo de Exoplayer en github ( https://github.com/google/ExoPlayer/tree/master/demo ). Uno de los ejemplos de la demostración muestra los metadatos ID3 en LogCat.

Si no es tu caso, nada te ayudará en ExoPlayer lib ahora mismo.

Pero hay una solución alternativa, que he utilizado para una aplicación de stream de radio, y funciona bien:

IcyStreamMeta para obtener los metadatos de la radio en línea:

Obtención de metadatos de SHOUTcast utilizando IcyStreamMeta

Pero no seguro que trabajará con el archivo mp3 simple.

Probablemente deberías usar MediaMetadataRetriever

 MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(getActivity(), uri); String artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST); 

Usted podría utilizar el código de seguimiento para hacer eso (tal vez debería descargar el archivo mp3 primero):

 MediaMetadataRetriever metaRetriver = new MediaMetadataRetriever(); metaRetriver.setDataSource("LOCAL MP3 FILE PATH"); byte[] picArray = metaRetriver.getEmbeddedPicture(); Bitmap songImage = BitmapFactory .decodeByteArray(picArray, 0, picArray.length); String albumName = metaRetriver .extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM); String artistName = metaRetriver .extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST); String songGenre = metaRetriver .extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE)); 

Fuente: http://mrbool.com/how-to-extract-meta-data-from-media-file-in-android/28130#ixzz3s8PUd9E7

  • ExoPlayer y comandos start / pause / seekTo
  • Creación de una instancia sencilla de ExoPlayer
  • Cómo mostrar subtítulos en android ExoPlayer
  • Obtención de pantalla en negro cuando se agrega ExoPlayer a GLSurfaceView
  • Configuración de encabezados para streaming de vídeo mp4 y reproducción de archivos con Exoplayer
  • Listador de la lista de reproducción de ExoPlayer 2
  • Android - Visualización de ExoPlayer en un círculo
  • Android - Exoplayer 2 - reproduce múltiples sonidos / audio simultáneamente - MergingMediaSource
  • Dibuje un android.media.Image a una superficie
  • Cómo utilizar un solo jugador para los anuncios y el vídeo con google android Exoplayer
  • Cómo mostrar el mini controlador en la parte inferior o controles de medios persistentes como spotify o Google música en la aplicación completa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.