我想将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);
}
Run Code Online (Sandbox Code Playgroud)
当我调用addSource时
MediaSource ms = buildMediaSource(mynewuri, null);
mediaSource.addSource(ms);
Run Code Online (Sandbox Code Playgroud)
轨道被添加到数组但似乎缺少某些东西,因为我总是在createPeriod方法中获得ArrayOutOfBoundsException.
在createPeriod中的方法
mediaSources.get(sourceIndex)...
Run Code Online (Sandbox Code Playgroud)
正在尝试访问index = mediaSources.size().
你能帮助我吗?
我在库中将程序包级函数声明为实用程序,我想在主应用程序中使用它。
我的问题是我无法使用proguard阻止代码混淆(因此无法在我的主应用程序中使用它)。
我的文件it.blabla.util.Extensions.kt
fun foo(context: Context, action: String) {
...
}
我已经尝试使用以下方法将其保留在proguard中:
-keep class it.blablabla.util.UtilPackage.** { *; }
要么
-keep class it.blablabla.util.** { *; }
但是这些都不起作用。
在我的应用程序中,我尝试如下使用foo:
foo(applicationContext, "test")
但是我找不到正确的导入内容,无法通过aar模块在我的应用中显示foo。我不断收到以下编译错误:
未解决的参考:foo