Android
ExoPlayer
Buscar..
Agrega ExoPlayer al proyecto
A través de jCenter
Incluyendo lo siguiente en el archivo build.gradle de su proyecto:
compile 'com.google.android.exoplayer:exoplayer:rX.X.X'
donde rX.XX es la versión preferida. Para la última versión, ver los lanzamientos del proyecto. Para más detalles, vea el proyecto en Bintray .
Utilizando ExoPlayer
Crea una instancia de tu ExoPlayer:
exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT, minBufferMs, minRebufferMs);
Para reproducir audio solo puedes usar estos valores:
RENDERER_COUNT = 1 //since you want to render simple audio
minBufferMs = 1000
minRebufferMs = 5000
Ambos valores de búfer pueden ser ajustados de acuerdo a sus requerimientos.
Ahora tienes que crear un DataSource. Cuando quiera transmitir mp3, puede usar DefaultUriDataSource. Tienes que pasar el contexto y un UserAgent. Para mantenerlo simple, reproduzca un archivo local y pase nulo como userAgent:
DataSource dataSource = new DefaultUriDataSource(context, null);
Luego crea el código fuente:
ExtractorSampleSource sampleSource = new ExtractorSampleSource(
uri, dataSource, new Mp3Extractor(), RENDERER_COUNT, requestedBufferSize);
uri apunta a su archivo, como un Extractor puede usar un simple Mp3Extractor predeterminado si desea reproducir mp3. requiredBufferSize se puede modificar de nuevo según sus requisitos. Use 5000 por ejemplo.
Ahora puede crear su procesador de pistas de audio utilizando la fuente de muestra de la siguiente manera:
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
Finalmente llame a preparar en su instancia de exoPlayer:
exoPlayer.prepare(audioRenderer);
Para iniciar la reproducción de la llamada:
exoPlayer.setPlayWhenReady(true);
Pasos principales para reproducir video y audio usando las implementaciones estándar de TrackRenderer
// 1. Instantiate the player.
player = ExoPlayer.Factory.newInstance(RENDERER_COUNT);
// 2. Construct renderers.
MediaCodecVideoTrackRenderer videoRenderer = ...
MediaCodecAudioTrackRenderer audioRenderer = ...
// 3. Inject the renderers through prepare.
player.prepare(videoRenderer, audioRenderer);
// 4. Pass the surface to the video renderer.
player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, surface);
// 5. Start playback.
player.setPlayWhenReady(true);
...
player.release(); // Don’t forget to release when done!