【发布时间】:2014-01-05 09:17:02
【问题描述】:
我有这个视频应用:
public class MainActivity extends Activity {
int i = 0;
List<String> videoPathes = new ArrayList<String>();
private VideoView videoview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoview = (VideoView) findViewById(R.id.videoView_video);
videoPathes.add(Environment.getExternalStorageDirectory().getAbsolutePath()+"/intros/intro1.mp4");
videoPathes.add(Environment.getExternalStorageDirectory().getAbsolutePath()+"/intros/intro2.mp4");
videoPathes.add(Environment.getExternalStorageDirectory().getAbsolutePath()+"/intros/intro3.mp4");
videoview.setVideoPath(videoPathes.get(i));
videoview.start();
videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(final MediaPlayer mp){
i = (i + 1) % videoPathes.size();
videoview.setVideoPath(videoPathes.get(i));
videoview.start();
}
});
}
}
当应用启动时运行第一个视频(“intro1.mp4”)。该应用程序有 20 个视频。我需要的是,当我打开应用程序时,它会开始播放随机视频。
例子:
现在
应用程序从第一个视频开始:“intro1.mp4”,然后继续到“intro2.mp4”和 >“intro3.mp4”。 (等等...)
我需要
从随机视频开始:“intro2.mp4”、“intro3.mp4”、“intro1.mp4”
第二次:“intro1.mp4”、“intro2.mp4”、“intro3.mp4”
下一次:“intro3.mp4”、“intro1.mp4”、“intro2.mp4”
(等等...)
因此,从任何视频 (intro11.mp4) 开始,然后继续播放下一个 (intro12.mp4)、下一个 (intro13.mp4) 和下一个 (intro14.mp4)。
我的应用可以做到这一点吗?
感谢您的支持。
【问题讨论】:
-
在完成时,您需要跟踪
i的先前值,而不是i = (i + 1) % videoPathes.size();,这样您就不会重复,而是使用随机计算下一个i值。然而,程序运行之间的跟踪必须涉及某种会话间跟踪(序列化、数据库等)。 -
谢谢,但我不需要这么复杂的东西。 :)