Android
ExoPlayer
Sök…
Lägg till ExoPlayer i projektet
Via jCenter
inklusive följande i projektets build.gradle-fil:
compile 'com.google.android.exoplayer:exoplayer:rX.X.X'
där rX.XX är den önskade versionen. För den senaste versionen, se projektets Releaser . För mer information, se projektet på Bintray .
Använda ExoPlayer
Instantiera din ExoPlayer:
exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT, minBufferMs, minRebufferMs);
För att bara spela ljud kan du använda dessa värden:
RENDERER_COUNT = 1 //since you want to render simple audio
minBufferMs = 1000
minRebufferMs = 5000
Båda buffertvärdena kan justeras enligt dina krav.
Nu måste du skapa en DataSource. När du vill streama mp3 kan du använda DefaultUriDataSource. Du måste passera Context och en UserAgent. För att göra det enkelt spela en lokal fil och skicka noll som userAgent:
DataSource dataSource = new DefaultUriDataSource(context, null);
Skapa sedan provet Källa:
ExtractorSampleSource sampleSource = new ExtractorSampleSource(
uri, dataSource, new Mp3Extractor(), RENDERER_COUNT, requestedBufferSize);
uri pekar på din fil, som Extractor kan du använda en enkel standard Mp3Extractor om du vill spela mp3. requestBufferSize kan finjusteras igen enligt dina krav. Använd till exempel 5000.
Nu kan du skapa din ljudspårgivare med hjälp av provkällan enligt följande:
MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
Slutligen ring förbered dig på din exoPlayer-instans:
exoPlayer.prepare(audioRenderer);
För att starta uppspelningssamtal:
exoPlayer.setPlayWhenReady(true);
Huvudsteg för att spela video och ljud med hjälp av standard TrackRenderer-implementationer
// 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!