我用surfaceview和mediaplayer制作了一个视频播放器。我有 10 个视频和 10 个按钮。如果点击每个按钮,每个视频都在播放。
这是我的代码..
//onCreate
holder = surfaceview.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
//Button1
if(mp == null)mp = new MediaPlayer();
mp.setDataSource(mediaplay_path);
mp.setDisplay(holder);
mp.setScreenOnWhilePlaying(true);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.prepare();
mp.start();
//Button2
if(mp != null){
mp.stop();
mp.reset();
}
mp.setDataSource(mediaplay_path2);
mp.setDisplay(holder);
mp.setScreenOnWhilePlaying(true);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.prepare();
mp.start();
//Button3~Button10 is same as Button2..
一切安好。我的自定义视频视图工作正常。但是当视频转到下一个视频时,上一个视频的最后一个场景会保留一段时间,然后转到下一个视频场景。
我认为这是因为在播放下一个视频之前应该清楚之前的表面视图。但我不知道如何清除表面视图或表面支架。
我已经搜索过了,但只能找到如何播放视频,而不是如何清除设置为从媒体播放器显示的表面视图。
请帮帮我~~!