Ricerca…


Aggiungi ExoPlayer al progetto

Via jCenter

includendo quanto segue nel file build.gradle del tuo progetto:

compile 'com.google.android.exoplayer:exoplayer:rX.X.X'

dove rX.XX è la tua versione preferita. Per l'ultima versione, vedere il progetto Uscite . Per maggiori dettagli, vedi il progetto su Bintray .

Utilizzando ExoPlayer

Crea un'istanza di ExoPlayer:

exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT, minBufferMs, minRebufferMs);

Per riprodurre solo l'audio è possibile utilizzare questi valori:

RENDERER_COUNT = 1 //since you want to render simple audio
minBufferMs = 1000 
minRebufferMs = 5000

Entrambi i valori del buffer possono essere ottimizzati in base alle proprie esigenze.

Ora devi creare un DataSource. Quando vuoi riprodurre lo streaming mp3 puoi usare DefaultUriDataSource. Devi passare il contesto e un utenteAgent. Per semplificare, riprodurre un file locale e passare null come userAgent:

DataSource dataSource = new DefaultUriDataSource(context, null);

Quindi crea l'origine campione:

ExtractorSampleSource sampleSource = new ExtractorSampleSource(
                uri, dataSource, new Mp3Extractor(), RENDERER_COUNT, requestedBufferSize);

uri punta al tuo file, come Extractor puoi usare un semplice Mp3Extractor predefinito se vuoi riprodurre mp3. requiredBufferSize può essere modificato di nuovo in base alle tue esigenze. Usa 5000 per esempio.

Ora puoi creare il tuo renderer di traccia audio usando la sorgente di esempio come segue:

MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);

Infine chiama la preparazione sulla tua istanza di exoPlayer:

exoPlayer.prepare(audioRenderer);

Per avviare la chiamata di riproduzione:

exoPlayer.setPlayWhenReady(true);

Passi principali per riprodurre video e audio usando le implementazioni standard di 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!


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow