Recherche…


Ajouter ExoPlayer au projet

Via jCenter

y compris les éléments suivants dans le fichier build.gradle de votre projet:

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

où rX.XX est votre version préférée. Pour la dernière version, voir les versions du projet. Pour plus de détails, voir le projet sur Bintray .

Utiliser ExoPlayer

Instanciez votre ExoPlayer:

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

Pour lire de l'audio seulement, vous pouvez utiliser ces valeurs:

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

Les deux valeurs de tampon peuvent être modifiées en fonction de vos besoins.

Maintenant, vous devez créer un DataSource. Lorsque vous voulez diffuser du mp3, vous pouvez utiliser DefaultUriDataSource. Vous devez passer le contexte et un agent utilisateur. Pour rester simple, jouez un fichier local et transmettez null comme userAgent:

DataSource dataSource = new DefaultUriDataSource(context, null);

Ensuite, créez le sampleSource:

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

uri pointe vers votre fichier, en tant qu’extracteur, vous pouvez utiliser un simple Mp3Extractor par défaut si vous voulez lire des mp3. requestedBufferSize peut être modifié à nouveau selon vos besoins. Utilisez 5000 par exemple.

Vous pouvez maintenant créer votre rendu de piste audio en utilisant la source d’échantillon comme suit:

MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);

Enfin appelez-vous sur votre instance exoPlayer:

exoPlayer.prepare(audioRenderer);

Pour lancer l'appel de lecture:

exoPlayer.setPlayWhenReady(true);

Principales étapes pour lire de la vidéo et de l'audio à l'aide des implémentations TrackRenderer standard

// 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow