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 }
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了