android–Exoplayer 2的动态播放列表

android–Exoplayer 2的动态播放列表,第1张

概述我想将ExoPlayer2与播放列表一起使用,可以动态地改变音轨(在播放列表中添加或删除它们)并更改循环设置.由于ConcatenatingMediaSource有静态数组(而不是列表),我正在实现一个DynamicMediaSource,比如连接一个但是用列表而不是数组和一个模式方法addSource来向列表添加一个以上的媒体源.public void a

我想将ExoPlayer2与播放列表一起使用,可以动态地改变音轨(在播放列表中添加或删除它们)并更改循环设置.

由于ConcatenatingMediaSource有静态数组(而不是列表),我正在实现一个DynamicmediaSource,比如连接一个但是用列表而不是数组和一个模式方法addSource来向列表添加一个以上的媒体源.

public voID addSource(MediaSource mediaSource) {    this.mediaSources.add(mediaSource);    duplicateFlags = buildDuplicateFlags(this.mediaSources);    if(!mediaSources.isEmpty())        prepareSource(mediaSources.size() -1);    else        prepareSource(0);}

当我调用addSource时

                MediaSource ms = buildMediaSource(mynewuri,null);                mediaSource.addSource(ms);

轨道被添加到数组但似乎缺少某些东西,因为我总是在createPeriod方法中获得ArrayOutOfBoundsException.

在createPeriod中的方法

mediaSources.get(sourceIndex)...

正在尝试访问index = mediaSources.size().

你能帮助我吗?

最佳答案我最终成功了.
在从数组到列表的转换过程中,这是我的错.
我不得不使用SparseArrays作为时间表和清单,一切都开始起作用了.

在DynamicmediaSource中,只需设置以下类型:

private final List

您必须使用稀疏数组将正确的值设置为方法中的时间轴和清单

private voID handleSourceInfoRefreshed(int sourceFirstIndex,Timeline sourceTimeline,Object sourceManifest) {    // Set the timeline and manifest.    timelines.put(sourceFirstIndex,sourceTimeline);    manifests.put(sourceFirstIndex,sourceManifest);    // Also set the timeline and manifest for any duplicate entrIEs of the same source.    for (int i = sourceFirstIndex + 1; i < mediaSources.size(); i++) {        if (mediaSources.get(i).equals(mediaSources.get(sourceFirstIndex))) {            timelines.put(i,sourceTimeline);            manifests.put(i,sourceManifest);        }    }    for(int i= 0; i

以下是DynamicmediaSource类的完整代码:

public final class DynamicmediaSource implements MediaSource {private static final String TAG = "DynamicSource";private final List
总结

以上是内存溢出为你收集整理的android – Exoplayer 2的动态播放列表全部内容,希望文章能够帮你解决android – Exoplayer 2的动态播放列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1139425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)