gpt4 book ai didi

android - 同时流畅地一个接一个地播放视频 [没有明显的从一个视频切换到另一个视频]

转载 作者:可可西里 更新时间:2023-11-01 19:08:06 25 4
gpt4 key购买 nike

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

我发现 stackoverflow 上的这个链接非常有用。 how-to-play-videos-one-after-another-simultaneously当我使用它时,虽然我可以一个接一个地播放视频,但是从一个 fragment 切换到另一个 fragment 会导致在播放下一个 fragment 之前暂停视频一秒钟因此它看起来不像连续视频。

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

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

}
};

}

最佳答案

你根本没有真正使用两个 VideoViews,你将 VideoViewVideoView1 都分配给了 R.id .VVSimpleVideo,所以它们是同一个对象。这意味着每次您点击 onCompletion 时,它都会重新设置自己,而不是设置一个然后播放另一个。

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

不过,我不能保证它会使其“无缝”,因为这几乎是不可能完成的任务。即使是大多数桌面媒体播放器也不是真正无缝的。这仅取决于您对接缝的容忍度。

关于android - 同时流畅地一个接一个地播放视频 [没有明显的从一个视频切换到另一个视频],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com