Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用ExoPlayer获取当前播放曲目的索引_Android_Exoplayer - Fatal编程技术网

Android 如何使用ExoPlayer获取当前播放曲目的索引

Android 如何使用ExoPlayer获取当前播放曲目的索引,android,exoplayer,Android,Exoplayer,我正在从事一个Android项目,该项目涉及使用谷歌的ExoPlayer。 我有一个视频源列表,我使用以下代码创建播放列表: for (int i = 0; i < vidList.length(); i++) { MediaSource source = new ExtractorMediaSource(Uri.parse(vidList.getJSONObject(i).getString("url")), bui

我正在从事一个Android项目,该项目涉及使用谷歌的ExoPlayer。 我有一个视频源列表,我使用以下代码创建播放列表:

for (int i = 0; i < vidList.length(); i++) {
    MediaSource source = new ExtractorMediaSource(Uri.parse(vidList.getJSONObject(i).getString("url")),
                                buildDataSourceFactory(bandwidthMeter), extractorsFactory, mainHandler, HomeFragment.this);
                        mediaSources.add(source);
                        captions.add(vidList.getJSONObject(i).getString("caption"));
                    }

    mediaSource = new ConcatenatingMediaSource(mediaSources.toArray(new MediaSource[mediaSources.size()]));
视频连续播放得很好。我想在文本视图中显示当前播放视频的标题,因此我有一个单独的列表,其中包含每个视频的“标题”值

通过搜索代码,我可以在播放列表中找到当前正在播放的视频,如下所示

exoPlayer.getCurrentPeriodIndex()
它似乎可以工作,并返回索引,除了一个问题。播放开始时,它将返回两次值0。即索引0处的视频返回时段0以及索引1处的视频。这只发生在索引0和1处,此后,除getCurrentPeriodIndex()将返回准确的索引-1外,其他一切看起来都正常

我在Exoplayer的演示应用程序中也看到了这种情况。 有没有更好的方法来确定播放列表中当前播放的曲目


谢谢。

要查找当前播放的曲目,您需要参考
currentWindowIndex
exoPlayer字段。在Java中看起来像这样

exoPlayer.getCurrentWindowIndex()

我不确定
getCurrentPeriodIndex()
做了什么,我不想详细说明,也不喜欢猜测。

在我的情况下,这两个选项都有效,非常感谢。
exoPlayer.getCurrentWindowIndex()