Android 同时流畅地播放一个接一个的视频[没有从一个视频切换到另一个视频的可见切换]

Android 同时流畅地播放一个接一个的视频[没有从一个视频切换到另一个视频的可见切换],android,video-streaming,android-videoview,Android,Video Streaming,Android Videoview,我是android新手,想同时播放一个又一个视频,这样看起来就像连续视频 我发现stackoverflow上的这个链接非常有用。 当我使用它时,虽然我可以一个接一个地播放视频, 但是从一个片段切换到其他片段会导致在播放下一个片段之前暂停视频一秒钟。因此它看起来不像连续视频 请帮我解决我的问题。 这是我的密码 public class VideoActivity extends Activity{ VideoView videoView, videoView1; MediaC

我是android新手,想同时播放一个又一个视频,这样看起来就像连续视频

我发现stackoverflow上的这个链接非常有用。 当我使用它时,虽然我可以一个接一个地播放视频, 但是从一个片段切换到其他片段会导致在播放下一个片段之前暂停视频一秒钟。因此它看起来不像连续视频

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

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类的实例进行播放。 试图用第一个播放器播放第一个视频,用第二个播放器播放第二个视频, 第一个播放器的第三个视频和第二个播放器的第四个视频,依此类推

但我仍然不能顺利播放视频,同样的问题也存在

这是我的双人游戏代码

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();        

        }
    };

}

实际上,您根本没有使用两个
VideoView
,而是将
VideoView
VideoView1
分配给
R.id.VVSimpleVideo
,因此它们是同一个对象。这意味着每次你点击完成时,它都会重新设置自己,而不是设置一个然后播放另一个

尝试在布局中创建两个独立的
VideoView
对象。将一个设置为
可见
,另一个设置为
消失
/
不可见
,并在需要更改时进行交换


不过,我不能保证它会“无缝”,因为这几乎是不可能的任务。即使是大多数桌面媒体播放器也不是真正无缝的。这取决于接缝的公差。

您好,Geobits,谢谢您的回复。感谢您更正在布局中使用两种不同的VideoView。但是,如果已丢失/不可见,则无法启动第二个。每次轮到第一个玩家时,第一个玩家就开始工作。然后我尝试通过videoView动态设置可见性。setVisibility(0);我找不到可见/消失/不可见作为可能的值,因此将0放入。仍然无法显示来自第二个视频的帧,尽管音乐即将到来。嗨,我可以通过videoView1动态更改可见性。设置可见性(View.VISIBLE),但在切换时,它会在其间显示一些黑屏,因此播放不流畅。嗨,piku,我也有类似的问题。你能实现最小的“黑屏切换”时间吗?使用exoPlayer。此库可帮助您将多个视频连接在一起