Поиск…


Добавить ExoPlayer в проект

Через jCenter

включая следующее в файле build.gradle вашего проекта:

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

где rX.XX - ваша предпочтительная версия. Последнюю версию см. В выпусках проекта. Для получения дополнительной информации см. Проект на Bintray .

Использование ExoPlayer

Создайте экземпляр своего ExoPlayer:

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

Чтобы воспроизводить только аудио, вы можете использовать следующие значения:

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

Оба значения буфера могут быть изменены в соответствии с вашими требованиями.

Теперь вам нужно создать DataSource. Когда вы хотите потоковое mp3, вы можете использовать DefaultUriDataSource. Вы должны передать Контекст и UserAgent. Чтобы упростить воспроизведение локального файла и передать null в качестве userAgent:

DataSource dataSource = new DefaultUriDataSource(context, null);

Затем создайте sampleSource:

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

uri указывает на ваш файл, в качестве Extractor вы можете использовать простой Mp3Extractor по умолчанию, если хотите воспроизвести mp3. requestBufferSize может быть изменен в соответствии с вашими требованиями. Например, используйте 5000.

Теперь вы можете создать свой рендерер звуковой дорожки, используя источник примера, следующим образом:

MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);

Наконец, позвоните в свой экземпляр exoPlayer:

exoPlayer.prepare(audioRenderer);

Для запуска воспроизведения:

exoPlayer.setPlayWhenReady(true);

Основные шаги для воспроизведения видео и аудио с использованием стандартных реализаций 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow