有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java VideoView添加多个视频并播放

让我们假设SD卡或内部存储器中有5个视频
现在我已经得到了文件路径,我的问题是如何在视频视图中插入多个视频

下一个或上一个按钮不起作用

这是我的密码

 public void getFile()
{

    urls = getIntent().getStringArrayListExtra("url_videoAll");
    keys = getIntent().getStringArrayListExtra("key_videoAll");

    for(int i = 0; i<urls.size();i++) {
        String FileName = URLUtil.guessFileName(urls.get(0), null, MimeTypeMap.getFileExtensionFromUrl(urls.get(0)));
        String yourFilePath = getBaseContext().getFilesDir() + "/" + FileName;
        fileList.add(new File(yourFilePath));

    }
    playallvideo(fileList);
}

在这段代码中,我们在单个视频中工作,如果我有5个视频呢

private void playallvideo(final List<File> file)
    {
    mediaController = new MediaController(this);

    video.setMediaController(mediaController);
    video.setVideoPath(file.get(0).toString());
    video.start();

    mediaController.setPrevNextListeners(new View.OnClickListener() {
        public void onClick(View v) {
            video.setMediaController(mediaController);
            video.setVideoPath(file.get(1).toString());
            video.requestFocus();
            video.start();
            // code for next
        }
    }, new View.OnClickListener() {
        public void onClick(View v) {
            video.setMediaController(mediaController);
            video.setVideoPath(file.get(1).toString());
            video.requestFocus();
            video.start();
            // code for previous
        }
    });
}

我需要这个,因为我将使用MediaController并按下下一个视频


共 (1) 个答案

  1. # 1 楼答案

    您可以使用计数器,并在第一个视频停止播放后立即增加其值。这可以通过使用MediaPlayer.OnCompletionListener来实现

    下面是我的工作:

    private static int currentVideo = 0;
    private List<String> fileData = new ArrayList<String>();
    
    videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            if(!(currentPosition < fileData.size())) {
                return;
            }
            Uri nextUri = Uri.parse(fileData.get(currentPosition++));
            videoView.setVideoURI(nextUri);
            videoView.start();
            //to keep looping into the list, reset the counter to 0.
            //in case you need to stop playing after the list is completed remove the code.
            if(currentPosition == fileData.size()) {
                currentPosition = 0;
            }
        }
    });
    

    虽然这篇文章太老了,无法回答,但最终来到这里的初学者开发人员将得到和我一样多的帮助