Exoplayer не воспроизводит видео

Возникли проблемы с запуском Exoplayer. Мне удалось загрузить видео с URL-адреса. Но воспроизводит только звук. Значит я что-то делаю не так.

    BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
    TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveVideoTrackSelection.Factory(bandwidthMeter);
    TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
    LoadControl loadControl = new DefaultLoadControl();
    SimpleExoPlayer exoPlayer = ExoPlayerFactory.newSimpleInstance(simpleExoPlayerView.getContext(), trackSelector, loadControl);

    Uri mp4VideoUri = Uri.parse(videoUri);
    DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory("ExoPlayerDemo");
    ExtractorsFactory extractor = new DefaultExtractorsFactory();

    MediaSource videoSource = new ExtractorMediaSource(mp4VideoUri, dataSourceFactory, extractor, null, null);
    exoPlayer.prepare(videoSource);

    exoPlayer.setPlayWhenReady(true);

Вот как я могу воспроизводить только звук. Не уверен, что я должен изменить.


person Jemil Riahi    schedule 12.01.2017    source источник


Ответы (1)


Похоже, вы пропустили привязку игрока к просмотру игрока

Присоединение проигрывателя к просмотру

Библиотека ExoPlayer предоставляет SimpleExoPlayerView, который инкапсулирует PlaybackControlView и поверхность, на которой отображается видео. SimpleExoPlayerView может быть включен в XML-макет вашего приложения. Привязать плеер к представлению так же просто, как:

// Bind the player to the view.
simpleExoPlayerView.setPlayer(player);

Если вам требуется детальный контроль над элементами управления проигрывателем и поверхностью, на которой отображается видео, вы можете установить целевой проигрыватель SurfaceView, TextureView, SurfaceHolder или Surface напрямую, используя методы SimpleExoPlayer setVideoSurfaceView, setVideoTextureView, setVideoSurfaceHolder и setVideoSurface соответственно. Вы можете использовать PlaybackControlView как отдельный компонент или реализовать свои собственные элементы управления воспроизведением, взаимодействующие непосредственно с проигрывателем. setTextOutput и setId3Output могут использоваться для получения заголовка и вывода метаданных ID3 во время воспроизведения.

person Anton Pogonets    schedule 12.01.2017
comment
Спасибо. Именно то, что я пропустил. - person Jemil Riahi; 13.01.2017
comment
Я буду, как только это будет возможно. У них есть продолжительность времени, которая мешает создателю сообщения слишком быстро принять ответ. - person Jemil Riahi; 13.01.2017