Изменить продолжительность воспроизводимого в данный момент клипа - PullRequest
0 голосов
/ 21 июня 2019

Мне нужно изменить длительность текущего воспроизводимого клипа, чтобы вставить другие клипы.

Мне нужно иметь возможность обновлять плейлист на лету.Это включает в себя изменение продолжительности текущего воспроизводимого клипа, вставку некоторых других клипов (это рекламные объявления) и, наконец, вставку нового клипа, который является оставшейся частью первого текущего воспроизводимого клипа.Этот последний клип будет иметь начало с того места, где мы были в последний раз.

Я использую объекты ClippingMediaSource и добавляю их в коллекцию ContactenatingMediaSource.

ConcatenatingMediaSource mediaSource;
private ConcatenatingMediaSource buildMediaSources(final ClipData[] clipList)
{
    ArrayList<MediaSource> sources = new ArrayList<MediaSource>();

    DataSource.Factory manifestDataSourceFactory =
            new DefaultHttpDataSourceFactory("ua");
    DashChunkSource.Factory dashChunkSourceFactory =
            new DefaultDashChunkSource.Factory(
                    new DefaultHttpDataSourceFactory("ua", BANDWIDTH_METER));

    for (ClipData clip : clipList)
    {
        String url = clip.getDashManifestURL();
        if (url == null)
        {
            url = clip.getHlsManifestURL();
        }
        MediaSource ms = new DashMediaSource.Factory(dashChunkSourceFactory,
                manifestDataSourceFactory).createMediaSource(Uri.parse(url));
        ClippingMediaSource cms = new ClippingMediaSource(ms, clip.getStartOffset(), clip.getStopOffset());
        sources.add(cms);
    }

    ConcatenatingMediaSource cms = new ConcatenatingMediaSource();
    cms.addMediaSources(sources);
    return cms;
}
mediaSource = buildMediaSources(clipList);
m_player.prepare(mediaSource, true, false);

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

...