视频应用随机播放视频,而不是按顺序播放

时间:2013-11-12 23:34:34

标签: android video

我有一个视频应用。我需要应用程序按顺序播放视频(1,2,3,4,1,2,3,4),但是当我安装应用程序时,视频随机运行(2,3,1,4,2,1) ,3,4,2,4等)。

这是我的代码:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final VideoView videoView = (VideoView) findViewById(R.id.videoView_video);
    final Uri path1 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
            +R.raw.intro);
    final Uri path2 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
            +R.raw.intro2);
    final Uri path3 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
            +R.raw.intro3);
    final Uri path4 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
            +R.raw.intro4);

    videoView.setVideoURI(path1);
    videoView.start();

    videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
            siguiente1();
        }
        private void siguiente1(){
            videoView.setVideoURI(path1);
            videoView.start();
            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
                    siguiente2();
                }
            });
        }

        private void siguiente2() {
            videoView.setVideoURI(path2);
            videoView.start();
            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
                    siguiente3();
                }
            });
        }
        private void siguiente3(){
            videoView.setVideoURI(path3);
            videoView.start();
            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
                    siguiente4();
                }
            });

        }
        private void siguiente4(){
            videoView.setVideoURI(path4);
            videoView.start();
            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
                    siguiente1();
                }
            });

        }
    });

}

}

谢谢,对不起我的英语。

1 个答案:

答案 0 :(得分:1)

尝试:

public class MainActivity extends Activity {

    private Uri path1 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
                +R.raw.intro);
    private Uri path2 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
                +R.raw.intro2);
    private Uri path3 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
                +R.raw.intro3);
    private Uri path4 = Uri.parse("android.resource://com.ivirtual.promotaxi/"
                +R.raw.intro4);

    private Uri uri_table[] = { path1, path2, path3, path4 };

    private VideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        videoView = (VideoView) findViewById(R.id.videoView_video);
        Video();
    }

    private OnCompletionListener mOnCompletionListener = new OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            Video();
        }
    }; // mOnCompletionListener

    private void Video() {
        Uri uri = 0;         // :P
        switch (signature_id) {
        case 0:
            uri = uri_table[1];
            break;
        case 1:
            ...
        case 4:
            uri = uri_table[0];
            break;
        }
    videoView = MediaPlayer.create(this, i);
    videoView.setOnCompletionListener(mOnCompletionListener);       
    videoView.start();
    }