我有以下工作代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.player);
videoView = (VideoView)this.findViewById(R.id.videoView);
playVideo();
// video finish listener
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.start();
}
});
}
public void playVideo() {
MediaController mc = new MediaController(this);
videoView.setMediaController(mc);
videoView.setVideoURI(Uri.parse("http://sayedhashimi.com/downloads/android/movie.mp4"));
videoView.requestFocus();
}
我只想在视频结束时更改 MediaPlayer 数据源(setOnCompletionListener)。
我正在研究同样的问题。这是我想出的:
public void onCompletion(MediaPlayer mp) {
mp.reset();
mp.setDataSource(this, newUri);
mp.start();
}
这是我的解决方案
mp.release()
mp = createNew(context,newUri)
mp.start()
我尝试过的其他任何事情都给我带来了错误,如上所述这里 每次创建新的媒体播放器不会对性能造成太大影响 因为无论如何你很可能一次只有一个。
希望有帮助; )