Android VideoView,需要快速切换视频

时间:2012-03-12 16:11:55

标签: android video android-videoview

我正在开发一个新的应用程序,并使用VideoView显示mpeg剪辑。

我需要非常快速地在视频之间切换,但是,将新剪辑加载到VideoView似乎需要大约半秒的黑屏。

过渡必须是无缝的,你将如何解决这类问题?

2 个答案:

答案 0 :(得分:2)

我有一个类似的问题,并通过静止图像(ImageView)转换解决:

  • 通过VideoView
  • 构建带有ImageView的FrameLayout
  • ImageView显示视频的第一帧
  • 最初可以看到ImageView
  • 启动视频,等待任意时间(例如2-300ms)
  • 隐藏ImageView

切换两个视频: - 显示图像 - 切换视频 - 隐藏图像

有点hackish但为我工作

答案 1 :(得分:1)

我遇到了同样的问题,但我使用了mediaplayer,我的代码是:

这里我使用一个按钮触发开关动作,在切换之前,我已经加载了视频并准备切换。当你需要这样做时,你只需要停止并释放旧mediaplayer并开始新的。无缝切换的关键点是sleep(),当进程休眠时,实际上是视频仍在继续,但给系统一些时间来准备下一个。

    switch_button = (Button) findViewById(R.id.button_switch);
    switch_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Button switch_button = (Button) v;
            VideoPlayer2 = new MediaPlayer();

            try {
                VideoPlayer2.setDataSource("rtsp://" + hostIP + ":1935/vod/Timer.mp4");
                VideoPlayer2.prepare();
                VideoPlayer2.setAudioStreamType(AudioManager.STREAM_MUSIC);
            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            VideoPlayer.release();
            VideoPlayer2.setDisplay(vidHolder);
            VideoPlayer2.start();
        }
    });