下一个和上一个按钮在Android的exoplayer 2.9.1中无法正常工作

时间:2019-05-17 21:09:52

标签: android exoplayer m3u

嗨,我目前正在开发使用exoplayer 2.9.1的LiveStream m3u播放器。当应用启动时,您需要单击“打开”按钮,该按钮提供了MaterialFilePicker(Openfiledialog)。

现在,您需要选择一个m3u文件。所有这些工作。因为exoplayer无法播放m3u文件,所以我使用BufferedReader读取所有行。要实际播放频道,我必须将以“ h”(url)开头的每一行放入列表中。

在这种情况下为Arraylist。我使用for循环为每个URL制作了一个Mediasource,并将它们放入concatenatingMediaSource中。现在网址正在播放。如果单击下一个按钮,则播放相同的频道。然后,我再次单击了下一个按钮。现在,它播放频道2。然后是频道1,然后是频道2,然后是频道3。依此类推:频道1,频道2,频道3,频道4并返回频道1 ...上一个按钮必须单击两次以回去。这是代码:

 List<ExtractorMediaSource> mediaSources = new ArrayList<>();


            ArrayList<String> lineStore = new ArrayList<String>();

            try {
                BufferedReader br = new BufferedReader(new FileReader(filePath));
                String line;

                while ((line = br.readLine()) != null) {
                   if (line.startsWith("h")){
                       lineStore.add(line);

                       DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory("exoplayer_video");

                       for (String url : lineStore) {
                           mediaSources.add(new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(Uri.parse(url)));

                       }



                       ConcatenatingMediaSource concatenatingMediaSource = new ConcatenatingMediaSource(mediaSources.toArray(new MediaSource[mediaSources.size()]));




                       exoPlayer.prepare(concatenatingMediaSource);
                       exoPlayer.setPlayWhenReady(true);

希望您能理解问题。

有人可以帮我吗?

0 个答案:

没有答案