我在使用MediaPlayer + SurfaceView播放的时候,在调用start()之后,4.0系统播放正常,2.3设备却黑屏并且在onError回调收到 what =1,extra= -19的错误,查了好久,最后发现这是一个系统兼容性问题。
对于3.0及以上的系统不需要调用
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
因为系统会自动设置这个类型,但是对于3.0以下的设备需要显示的调用这个代码,设置类型。
总结就是必须要加上这句代码,这样子就能做到兼容性了。
MediaPlayer + SurfaceView 播放本地文件这个demo已经有很多了。
如:http://blog.youkuaiyun.com/worker90/article/details/7108358
本文解决了MediaPlayer结合SurfaceView在不同Android版本上播放时遇到的兼容性问题,特别是在2.3系统中出现黑屏和错误回调的问题。通过调整SurfaceHolder的类型确保了3.0以下系统的正常播放。
1755

被折叠的 条评论
为什么被折叠?



