Android midi 音效导致 mediaplay blocking 致死问题
2010-04-01 15:56:00 来源:WEB开发网前些天做游戏,播放midi音效时,播放动作所在的线程会被卡死,仅限于1.5 sdk,1.6sdk很正常。
经查,1.5的audio播放时有一段代码:
status_t AudioTrack::obtainBuffer(Buffer* audioBuffer, bool blocking)
会在分配不到buffer时被卡死,知道分配到为止,无限循环啊,= =!~~~~~。
1.6的audioTrack加入了一段timeout检测,所以不会被卡死,只要我们处理好异常就ok:
status_t AudioTrack::obtainBuffer(Buffer* audioBuffer, int32_t waitCount)
对应sorcecode如下:
http://www.netmite.com/android/mydroid/frameworks/base/media/libmedia/AudioTrack.cpp
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=history;f=media/libmedia/AudioTrack.cpp;h=7537ddf9bb322f5092dbbdfdbb4a04edcb06dd8a;hb=105925376f8d0f6b318c9938c7b83ef7fef094da
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/libmedia/AudioTrack.cpp;h=7537ddf9bb322f5092dbbdfdbb4a04edcb06dd8a;hb=105925376f8d0f6b318c9938c7b83ef7fef094da
http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/libmedia/AudioTrack.cpp;h=d4f2e5a473134770bda665eec3d7c7331a1d5cea;hb=f013e1afd1e68af5e3b868c26a653bbfb39538f8
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
更多精彩
赞助商链接