我已经实现了以下代码,以便通过其URL从远程Web服务器播放视频进行测试。
videoView = (VideoView)this.findViewById(R.id.videoView);
MediaController mc = new MediaController(this);
videoView.setMediaController(mc);
videoView.setVideoURI(Uri.parse("http://sayedhashimi.com/downloads/android/movie.mp4"));
videoView.requestFocus();
这段代码在Android模拟器中完美运行。我只是想知道是否有任何监听器(或处理程序)可以检测正在播放的视频是否已经完成?
更新:
现在我有以下代码:
@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) {
// not playVideo
// playVideo();
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();
}
当活动被调用时,视频可以正常播放,但当视频完成后,我希望它能够再次播放,但这并没有发生。
mp.start()
而不是调用playVideo()
。 - Anthony Forloney