Android开发中在一个VideoView的情况下多个视频按顺序循环播放

来源:互联网 发布:怪物猎人 知乎 编辑:程序博客网 时间:2024/06/03 20:02
         关于这一点我很惭愧,研究了两个小时各种方法几乎都用到了,可是半毛钱的作用也没有起。

 最后,静下心来想了想突然醒悟了,看源码多么强大的领悟。于是乎顺藤摸瓜我便很快解决了问题,顺利完成了循环播放视频。


   实现效果描述:给手机SDcard的某个目录下放N个视频文件,然后通过你自己写的App播放视频的组件VideoView来实现循环播放。
也就是说,我们要实现的播放顺序是1-2-3-4-5-1-2-3-4-5-1-2-3-4-5-1-2-3-4-5.......
直接上代码了:
  1. package com.hangcheng;  
  2.   
  3. import com.example.bdcustomer_demo.R;  
  4. import com.hangcheng.view.MyVideoView;  
  5.   
  6. import android.app.Activity;  
  7. import android.media.MediaPlayer;  
  8. import android.os.Bundle;  
  9. import android.view.Window;  
  10.   
  11. public class VideoActivity extends Activity {  
  12.     private MyVideoView myVideoView;  
  13.     private String videoUrl[4] ={"/mnt/sdcard/Movies/1","/mnt/sdcard/Movies/2","/mnt/sdcard/Movies/3","/mnt/sdcard/Movies/4"};
  14.   
  15.     @Override  
  16.     protected void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  19.         setContentView(R.layout.video);  
  20.         initView(); 
  21.         playVideo();
  22.     }  
  23.  private void initView() {  
  24.       mVideo= (MyVideoView) findViewById(R.id.video);  
  25.      } 
  26.       private void playVideo() {
                 mVideo.setVideoPath(videoUrl[0]);
                 mVideo.start();  //播放第一个视频
                mVideo.setOnCompletionListener(new OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                 playVideo2();
                }
            });
       }
      private void playVideo2() {
                 mVideo.setVideoPath(videoUr2);
                 mVideo.start();
               mVideo.setOnCompletionListener(new OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    playVideo3();
                }
            });
      }
      private void playVideo3() {
              mVideo.setVideoPath(videoUr3);
              mVideo.start();
             mVideo.setOnCompletionListener(new OnCompletionListener() {
                  @Override
                  public void onCompletion(MediaPlayer mp) {
                      playVideo4();
                  }
              });
         }
       private void playVideo4() {
              mVideo.setVideoPath(videoUr4);
              mVideo.start();
              mVideo.setOnCompletionListener(new OnCompletionListener() {
                  @Override
                  public void onCompletion(MediaPlayer mp) {
                      playVideo();
                  }
              });
       }
    }
  27. 哈哈,在寻求了两小时简单答案无果之后,鄙人就想出来这么一个很low的方法实现了此功能。


1 0
原创粉丝点击