mediaserver 异常挂掉引起的一个BUG
来源:互联网 发布:全国网络零售交易额 编辑:程序博客网 时间:2024/06/06 19:24
mediaserver 异常挂掉引起的一个BUG
具体问题:
由于CAMERA的问题,导致Mediaservice 挂掉,audioflinger, audiopolicyservice 也一起被杀掉了。KERNEL HIFI并没有关掉。
处理方法:
AudioService 中有注册audioflinger, audiopolicyservice DIE 掉的回调函数,
具体就是这个
private final AudioSystem.ErrorCallback mAudioSystemCallback = new AudioSystem.ErrorCallback() { public void onError(int error) { switch (error) { case AudioSystem.AUDIO_STATUS_SERVER_DIED: sendMsg(mAudioHandler, MSG_MEDIA_SERVER_DIED, SENDMSG_NOOP, 0, 0, null, 0); break; default: break; } }};
在 AudioHandler 处理中,
case MSG_MEDIA_SERVER_DIED: if (AudioSystem.checkAudioFlinger() != AudioSystem.AUDIO_STATUS_OK) { Log.e(TAG, "Media server died."); sendMsg(mAudioHandler, MSG_MEDIA_SERVER_DIED, SENDMSG_NOOP, 0, 0, null, 500); break; } Log.e(TAG, "Media server started."); // indicate to audio HAL that we start the reconfiguration phase after a media // server crash // Note that we only execute this when the media server // process restarts after a crash, not the first time it is started. AudioSystem.setParameters("restarting=true"); readAndSetLowRamDevice();
首先是每隔500 MS 查询一次SERVICE是否已经重启OK了,如果OK了重新将上面的状态设置到底层去。在这个地方重新设置下HIFI 状态就OK 了。
0 0
- mediaserver 异常挂掉引起的一个BUG
- memcpy引起的一个bug
- 一个分号引起的bug
- 一个BUG引起的思考
- 一个异常引起的反思
- GetTickCount引起的一个诡异bug
- 一个由sscanf函数引起的bug
- 一个类型转换引起的Bug
- 一个由于spring事务引起的bug
- 一个由于全局变量引起的BUG
- Loader Lock引起的一个Bug
- 一个字符串引起的大bug
- 由一个bug引起的关于list的思考
- unsigned引起的bug
- typedef引起的bug
- php中post键值过多引起的一个bug
- 一个不良编程习惯引起的怪异bug
- 处理系统中一个并发引起的bug
- 某一点倒计时
- JSP内置对象(四)——application对象
- IIS 7.0 部署MVC
- Android中Service(服务)详解
- Accessible apps can be used by everyone,
- mediaserver 异常挂掉引起的一个BUG
- 【我的头脑风暴】
- AVR单片机 I2C总线 的使用
- Building JavaScript Games for Phones Tablets and Desktop(1)-程序设计
- apt-get webmin
- xilinx时钟问题 IBUFG
- 远程仓库
- SecureCRT端口转发配置
- CentOS 6.4下编译安装MySQL 5.6.14