SoundPool的一些可能导致没有声音的注意事项

编程入门 行业动态 更新时间:2024-10-18 13:18:19

SoundPool的一些可能导致没有声音的<a href=https://www.elefans.com/category/jswz/34/1768820.html style=注意事项"/>

SoundPool的一些可能导致没有声音的注意事项

soundfool用法虽然简单,但是也会出现一些小错误。
从网上能找到的这几条,有则改之,无则加勉吧。


1、A
udioFlingercould not  create track, status:-12    SoundPool即音效池,在创建的时候   maxStream这个参数代表能够同时播放的最大音效数,这里切忌合理使用,写的太大后会报AudioFlingercould not  create track, status: -12。。。。一旦报了这个错,你就听不到声音了,呵呵。  2、256个音效       当调用load方法的时候实际就是把音效加载到了SoundPool中,此时返回的streamId其实就是该音效在SoundPool中的Id,这个ID从0还是1来着(有点记不清了)递增,不过要注意的是,不要超过  256 这个临界点。也就是说第257个声音加载进去后,调用play方法其实是播不出来的,说不定还会挤掉一些前面加载好的声音。这个256的限制通过查看SDK源码基本就能了解清楚,它底层就那么实现的,用一个类似堆栈来存。   3、unload方法和release方法        如果你音效多,也不要指望unload方法来清除掉一些音效后再load新的进去,虽然unload后音效卸载了,但是前面分给它在SoundPool里面的Id可没有释放掉,也就是说这个时候你load新的进去只会在后面继续累加,然后累加多了就超过256了,然后就就听不到声音,然后就没有然后了。要想彻底清掉前面的音效请使用release方法,它会连内存中占用的资源一起释放掉。   其他还有点什么呢,load需要一点点时间,load后不要马上unload,load---play--unload的做法并不可取,不要load太大的音效,它只会申请1M的内存空间。SoundPool出错后通常会看到retuen的值是0。

更多推荐

SoundPool的一些可能导致没有声音的注意事项

本文发布于:2024-02-25 16:44:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699647.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:注意事项   声音   SoundPool

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!