最近在做android视频播放器,可以进行软解和硬解进行切换,但是遇到一个令我头痛的问题,硬解模式却换到软解模式可以正常播放,有声音有图像,但是当从软解模式切换到硬解模式的时候,却出现只有声音没有图像的现象。尝试了很多办法也没有解决,后来仔细分析下log发现有一句错误打印:surfaceview already connect[cur=2, req=3]。
经过查资料发现是surface被占用还没有释放,此时mediaplayer再去attach该surfaceview时就会出错。那么针对此错误只能是重新创建surfaceview,最简单的方式就是通过如下两句代码来实现:
1
2
3
|
mSurface.setVisibility(View.GONE);
mSurface.setVisibility(View.VISIBLE);
|