随机启动Android视频应用

时间:2014-01-05 00:38:26

标签: android video random

我有这个视频应用:

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”和&gt;“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)。

这可以用我的应用程序吗?

感谢您的支持。

1 个答案:

答案 0 :(得分:1)

最简单的方法是创建订单随机的视频列表。 没有编译代码:

List randomList = new ArrayList();
Random random = new Random();
int pathsCount = videoPathes.size();
for (int i = 0; i < pathsCount; i++){
 int randomPathIndex = random.nextInt(videoPathes.size();
 String path = videoPathes.get(randomPathIndex));
 videoPathes.remove(randomPathIndex);
 randomList.add(path);
}

我认为这应该有效:)