Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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
Java 如何使用exoplayer通过标签播放媒体?_Java_Android_Android Mediaplayer_Exoplayer_Exoplayer2.x - Fatal编程技术网

Java 如何使用exoplayer通过标签播放媒体?

Java 如何使用exoplayer通过标签播放媒体?,java,android,android-mediaplayer,exoplayer,exoplayer2.x,Java,Android,Android Mediaplayer,Exoplayer,Exoplayer2.x,一旦我将一首歌添加到concatenatingMediaSource,我就会在它旁边添加一个标记,因此我想知道如何通过这个特定的标记播放一首歌 ExtractorMediaSource mediaSource2 = new ExtractorMediaSource.Factory(dataSourceFactory) .setTag(ctd) .createMediaSource(ssUriTeste); concatenatingMediaSour

一旦我将一首歌添加到concatenatingMediaSource,我就会在它旁边添加一个标记,因此我想知道如何通过这个特定的标记播放一首歌

 ExtractorMediaSource mediaSource2 = new ExtractorMediaSource.Factory(dataSourceFactory)
       .setTag(ctd)
       .createMediaSource(ssUriTeste);

       concatenatingMediaSource.addMediaSource(mediaSource2);

Obs:ctd是歌曲位置的参考号

我找不到返回整个播放列表的函数

通过检查API中的函数,对于在播放列表中频繁跳转的应用程序来说,最好的选择是在播放器外部有一个副本,只加载当前项

但是,如果您需要使用唯一ID访问播放列表中的特定项目,这可能会起作用

  • 按照提供的代码注册播放列表,您可以使用.setTag()或.setMediaId()唯一标识曲目

  • 使用.getMediaItemAt()获取播放列表项

int count=player.getMediaItemCount();
for(int i=0;i
注意:您应该评估对getMediaItemAt()进行multipla调用的循环是否会导致问题

    int count = player.getMediaItemCount();

    for (int i = 0; i < count; i++) {
        MediaItem media = player.getMediaItemAt(i)
        if(media.mediaId == myDesiredId) {
            // do whatever you want with media
            
            // you can also use the index i as a starting point
            // to delete all previous items or to move the i-th item to 
            // the first position of the playlist with moveMediaItem
            
            break;
        }
    }