VideoView 添加多个视频并播放
Posted
技术标签:
【中文标题】VideoView 添加多个视频并播放【英文标题】:VideoView Add a multiple videos and play 【发布时间】:2015-12-09 07:53:36 【问题描述】:让我们假设 SD 卡或内部存储中有 5 个视频。 现在我已经获得了文件路径,我的问题是如何在 VIDEO VIEW 中插入多个视频?
下一个或上一个按钮不起作用
这是我的代码
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】:您可以使用计数器并在第一个视频停止播放后立即增加它的值。这可以通过使用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;
);
虽然帖子太老了,无法回答,但最终来到这里的初学者开发人员会得到和我一样多的帮助。
【讨论】:
setOnCompletionListener 没有触发,即使循环设置为 false以上是关于VideoView 添加多个视频并播放的主要内容,如果未能解决你的问题,请参考以下文章