解决The surface has been released 错误

一、产生异常原因

每次在点播放按钮的时候,打开MediaPlayer的SurfaceView进行播放,再次点击则删除波翻组件,停止播放,这个过程中会遇到The surface has been released 错误,这个的原因是因为:在播放this.mediaPlayer.start()之前SurfaceView没有来的及调用onCreate()或者onChange()方法,导致holder没有成功加载,所以在start播放的时候抛出播放异常。

二、解决办法

很简单的办法就是:
1.设置一个boolean标志位isSurfaveCreated,在执行onCreate()或者onChange()之后,将isSurfaveCreated=true。
2.在停止播放之后isSurfaveCreated=false。
3.在MediaPlayer.setDisplay()之前使用while循环以及Thread.sleep(10)来循环检测isSurfaveCreated,只有isSurfaveCreated为true的时候,才继续执行,具体代码为:

 代码如下 复制代码
while (! this.isSurfaveCreated) {
    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

当然,这个办法自己感觉是一个非主流的办法,但是确实可以很好的避免这个问题,除此之外,大家自己考虑代码的安全稳定性等等因素,Enjoy~

时间: 2024-09-24 08:25:43

解决The surface has been released 错误的相关文章

解决JS中乘法的浮点错误的方法

 本篇文章主要介绍了解决JS中乘法的浮点错误的方法.需要的朋友可以过来参考下,希望对大家有所帮助 JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下:     <script>  alert(11*22.9)  </script>    结果是251.89999999999998 而不是251.9     这个问题想必有很多人为之头痛.那么如何解决呢?在此给出解决办法.    1.    代码如下: <script>  alert(11*(22.9*10)/10)

【技术贴】解决打开程序出错,提示错误429,activex部件不能创建对象,不用重装系统。

[技术贴]解决打开程序出错,提示错误429,activex部件不能创建对象,不用重装系统. 错误429修复包下载,activex部件不能创建修复包下载 1.最完美解决方案 去这里http://ishare.iask.sina.com.cn/f/17276925.html 下载 错误429修复包 ,双击运行之后即可.ok  (90%可以解决问题!!) 2.去这里下载429处理包 http://ishare.iask.sina.com.cn/f/6258417.html?retcode=0  3.别

recyclerview-请大神速来解决,使用Recyclerview时报这个错误

问题描述 请大神速来解决,使用Recyclerview时报这个错误 /RecyclerView: No adapter attached; skipping layout 刚用Recyclerview,很多东西都不懂! 下面为代码片段: 解决方案 没有适配器,,,,, 解决方案二: 你重新写一遍,该有的都有了,米之错误 解决方案三: void dispatchLayout() { if (mAdapter == null) { Log.e(TAG, "No adapter attached; s

解决使用Goagent中的一些错误

解决goagent打开页面出现403错误:Your client does not have permission to get URL /2 from this server 解决方法: goagentlocalproxy.ini 中的[gae]部分的: profile = google_cn 改为: profile = google_hk 解决GoAgent打开https网站SSL安全证书不受信任错误 第一步,打开Chrome浏览器的设置页面(浏览器主界面右上角扳手图标),然后再设置里面打开

解决Asp程序的Server.CreateObject错误

        由于以前一直没用过XP系统(还是在大学那会xp刚出来的时候用过,以后就一直没用过xp,当时不喜欢它花里胡哨的界面,呵呵.),没碰到过这样的问题,今天在帮一个网友mm解决excel导入到sqlserver数据库中遇到这样的问题,asp代码里无权限创建excel对象(偶的是XP Professional 英文版),大概是xp默认权限限制的问题,于是到百度里搜索了一下,找到了解决办法如下: 很多使用 IIS 架站的人 经常碰到类似的问题. 在Asp程序CreateObject的时候发生

解决DB2中出现的SQL1032N错误现象

在使用DB2以来,碰到了几次出现提示SQL1032N错误,每次出错时出错信息大概如下:11/21/2004 22:15:33 0 0 SQL1042C 发生意外的系统错误. SQL1032N 未发出启动数据库管理器的命令. SQLSTATE=57019. 每次出现问题后,都到网上找了很多资料,也问了许多人,费了些力才搞定的.几次出错的原因和解决方法都不尽相同,解决后我也只做了个简单的记录.一直想把它们写下来,方便方便后来也遇到同样问题,跟我一样到处查找的人,中间也写了一些废话,比如我如何查找错误

解决jdbc连接oracle协议适配器错误

oracle|错误|解决 解决oracle协议适配器错误 现象:jdbc连接oracle817 for Linux出现适配器错误,sqlplus连接正常. 方法:编辑init.ora文件屏蔽 mts_dispatchers = "(PROTOCOL=TCP)(SER=MODOSE)" 重新启动oracle. import java.sql.*;import java.lang.*;import java.util.*; class testjdbc { public static vo

如何解决DB2中出现的SQL1032N错误现象

在使用DB2以来,碰到了几次出现提示SQL1032N错误,每次出错时出错信息大概如下: 11/21/2004 22:15:33 0 0 SQL1042C 发生意外的系统错误. SQL1032N 未发出启动数据库治理器的命令. SQLSTATE=57019. 每次出现问题后,都到网上找了很多资料,也问了许多人,费了些力才搞定的.几次出错的原因和解决方法都不尽相同,解决后我也只做了个简单的记录.一直想把它们写下来,方便方便后来也碰到同样问题,跟我一样到处查找的人,中间也写了一些废话,比如我如何查找错

解决Dreamweaver打开和关闭的错误

这两天打开Dreamweaver CS4,总是弹出一个错误,写着: 在onLoad运行RecordsetFind.htm时,发生了以下JavaScript错误: 在文件"RecordsetFind"中: findRs is not defined 在关闭Dreamweaver CS4的时候也会弹出一个类似的错误, 在onLoad运行TeamAdminTempDelete.html时,发生了以下JavaScript错误: 在文件"TeamAdminTempDelete"