Exoplayer не может воспроизводить видео DASH Android

Я пытаюсь воспроизвести видео DASH с помощью Uri, полученного из exoplayer демо-приложения https://github.com/google/ExoPlayer/blob/release-v2/demos/main/src/main/assets./media.exolist.json

Когда я переключаю свою сеть с WIFI на мобильные данные, качество видео не меняется, вместо этого начинается буферизация.

Мой код

private void initializePlayer() {
        if (player == null) {

            player = ExoPlayerFactory.newSimpleInstance(
                    new DefaultRenderersFactory(this),
                    new DefaultTrackSelector(), new DefaultLoadControl());

            exoPlayerView.setPlayer(player);

            player.setPlayWhenReady(playWhenReady);
            player.seekTo(currentWindow, playbackPosition);
        }


        Uri uri = Uri.parse("http://www.youtube.com/api/manifest/dash/id/3aa39fa2cc27967f/source/youtube?as=fmp4_audio_clear,fmp4_sd_hd_clear&sparams=ip,ipbits,expire,source,id,as&ip=0.0.0.0&ipbits=0&expire=19000000000&signature=A2716F75795F5D2AF0E88962FFCD10DB79384F29.84308FF04844498CE6FBCE4731507882B8307798&key=ik0");
        MediaSource mediaSource = buildMediaSource(uri);
        player.prepare(mediaSource, true, false);

        player.addListener(new PlayerEventListener());
        player.setRepeatMode(Player.REPEAT_MODE_ALL);
        //exoPlayerView.setUseController(false);

    }

    private MediaSource buildMediaSource(Uri uri) {
        DataSource.Factory manifestDataSourceFactory = new DefaultHttpDataSourceFactory("ua");
        DashChunkSource.Factory dashChunkSourceFactory = new DefaultDashChunkSource.Factory(new DefaultHttpDataSourceFactory("ua", BANDWIDTH_METER));
        return new DashMediaSource.Factory(dashChunkSourceFactory, manifestDataSourceFactory).createMediaSource(uri);
    }

уровень

compile 'com.google.android.exoplayer:exoplayer-core:2.7.0'
    compile 'com.google.android.exoplayer:exoplayer-dash:2.7.0'
    compile 'com.google.android.exoplayer:exoplayer-ui:2.7.0'

Есть ли что-нибудь, что я пропустил?


person karthik kolanji    schedule 13.03.2018    source источник
comment
качество видео не меняется, вместо этого начинается буферизация, но видео все еще воспроизводится?   -  person Rai_Gaurav    schedule 14.03.2018
comment
да ... он пытается буферизовать видео высокого качества даже в низкой сети, где DASH не работает   -  person karthik kolanji    schedule 14.03.2018
comment
Я решил это .. посмотри на мой ответ   -  person karthik kolanji    schedule 14.03.2018


Ответы (1)


Это была глупая ошибка

вместо new DefaultTrackSelector()

я использовал

TrackSelection.Factory adaptiveTrackSelectionFactory =
                    new AdaptiveTrackSelection.Factory(BANDWIDTH_METER);

new DefaultTrackSelector(adaptiveTrackSelectionFactory)
person karthik kolanji    schedule 14.03.2018