同时顺利地播放video

我是Android新手,想要一个接一个地播放video,以便它看起来像连续video。

我发现stackoverflow上的这个链接非常有用。 如何播放 – video – 一个接一个 – 同时当我使用它然后虽然我能够一个接一个地播放video, 但是从一个片段切换到另一个片段导致video暂停一秒钟然后播放下一个一个 因此,它看起来不像连续video。

请帮我解决我的问题。 这是我的代码。

public class VideoActivity extends Activity{ VideoView videoView, videoView1; MediaController mc; int count = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video); videoView = (VideoView) findViewById(R.id.VVSimpleVideo); setup(); videoView.setOnCompletionListener(completionListener); } public void setup() { String _path = "/mnt/sdcard/Video/"+count+".mp4"; videoView.setVideoPath(_path); videoView.start(); count++; } private OnCompletionListener completionListener=new OnCompletionListener() { public void onCompletion(MediaPlayer mp) { mp.stop(); setup(); } }; } 

现在我尝试通过两个VideoView类实例来玩。 试图通过第一个玩家播放第一个video,第二个播放器播放第二个video,第一个播放器播放第三个video,第二个播放器播放第四个video,依此类推。

但我仍然无法顺利播放video,同样存在问题。

这是我的双重播放器代码。

 public class VideoActivity extends Activity{ VideoView videoView, videoView1; MediaController mc; int count = 0; String _path; String _path1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video); videoView = (VideoView) findViewById(R.id.VVSimpleVideo); _path = "/mnt/sdcard/Video/"+count+".mp4"; videoView.setVideoPath(_path); videoView.start(); //setup(); videoView.setOnCompletionListener(completionListener); videoView1 = (VideoView) findViewById(R.id.VVSimpleVideo); videoView1.setOnCompletionListener(completionListener1); count++; _path1 = "/mnt/sdcard/Video/"+count+".mp4"; videoView1.setVideoPath(_path1); } public void setup() { videoView.start(); count++; _path1 = "/mnt/sdcard/Video/"+count+".mp4"; videoView1.setVideoPath(_path1); } public void setup1() { videoView1.start(); count++; _path = "/mnt/sdcard/Video/"+count+".mp4"; videoView.setVideoPath(_path); } private OnCompletionListener completionListener=new OnCompletionListener() { public void onCompletion(MediaPlayer mp) { mp.stop(); setup1(); } }; private OnCompletionListener completionListener1=new OnCompletionListener() { public void onCompletion(MediaPlayer mp) { mp.stop(); setup(); } }; } 

你根本没有真正使用两个VideoViews ,你将VideoViewVideoView1分配给R.id.VVSimpleVideo ,因此它们是同一个对象。 这意味着每次你点击完成时,它会重新设置自己,而不是设置一个并播放另一个。

尝试在布局中创建两个单独的VideoView对象。 有一个设置为VISIBLE ,一个设置为GONE / INVISIBLE ,并在您想要更改时进行交换。

但我不能保证它会“无缝”,因为这是一项几乎不可能完成的任务。 即便是大多数桌面媒体播放器也不是真正无缝 这取决于你对接缝的耐受性。