mediaplayer与surfaceView,无法播放问题

 mediaplayer需要在surfaceView创建之后才能创建,不然会导致错误。

1 surfaceholder = msurface.getHolder();
2         surfaceholder.setKeepScreenOn(true);
3         surfaceholder.addCallback(new SurfaceViewLis());
复制代码
 1 private class SurfaceViewLis implements SurfaceHolder.Callback {  
 2           
 3         @Override  
 4         public void surfaceChanged(SurfaceHolder holder, int format, int width,  
 5                 int height) {  
 6   
 7         }  
 8   
 9         @Override  
10         public void surfaceCreated(SurfaceHolder holder) {  
11             mPlayer = MediaPlayer.create(AnimationGuideActivity.this, R.raw.guideanimation);
12             mPlayer.setDisplay(holder);
13             mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
14                 
15                 @Override
16                 public void onCompletion(MediaPlayer arg0) {
17                     // TODO Auto-generated method stub
18                     Intent intent = new Intent(AnimationGuideActivity.this, IrisActivity.class);
19                     finish();
20                     startActivity(intent);
21                 }
22             });
23 
24             try {
25                 mPlayer.setOnPreparedListener(new OnPreparedListener() {
26                     
27                     @Override
28                     public void onPrepared(MediaPlayer arg0) {
29                         mPlayer.start();
30                         
31                     }
32                 });
33                 mPlayer.prepareAsync();
34             } catch (IllegalStateException  e) {
35                 // TODO Auto-generated catch block
36                 e.printStackTrace();
37             }
38   
39         }  
40   
41         @Override  
42         public void surfaceDestroyed(SurfaceHolder holder) {  
43   
44         }  
45   
46     }  
复制代码

 

posted @   鸭子船长  阅读(619)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示