我写了一个类继承surfaceview来实现视频连续播放。但发生一个奇怪的问题。
当连续播放多个视频时,比如播放完A视频后自动开始播放B视频,这时B视频中声音就像按了快进一样,听不清?
代码如下:
1 private void playVideo(String path){
2 try{
3 //空置到空闲状态
4 mMediaPlayer.reset();
5
6 //设置播入文件地址
7 mMediaPlayer.setDataSource(path);
8
9 //设置播放显示的地方
10 mMediaPlayer.setDisplay(mSurfaceHolder);
11
12 //播放准备
13 mMediaPlayer.prepare();
14
15 //设置音乐流
16 mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
17
18 //窗口大小
19 mSurfaceHolder.setFixedSize(mMediaPlayer.getVideoWidth(),mMediaPlayer.getVideoHeight());
20
21 //开始播放
22 mMediaPlayer.start();
23
24 //注册监听事件
25 mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
26 public void onCompletion(MediaPlayer arg0) {
27 //下一个
28 nextVideo();
29 }
30 });
31 mMediaPlayer.setOnErrorListener(new OnErrorListener() {
32 public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
33 //发生错误时恢复到空闲状态
34 mMediaPlayer.reset();
35 return false;
36 }
37 });
38 }catch(IOException ex){
39 Log.e("VideoSurfaceView",ex.getMessage()+"\n"+ex);
40 System.out.println(ex);
41 }
42 }