开机音乐不发声的问题

  今天在Bootanimation.cpp中加入了SoundPool来实现开机音乐。反复检查了好几遍调用SoundPool的地方,没有错,而且返回的值也都没有异常,可是就是不发声音。后来在网上搜了一下,因为开机动画是在开机中media_server和system_server刚起来的阶段,此时尚未从setting模块中读取数据库中的记录为各个流设置最大的index,因此此时的index仍是使用默认的值,故而不能正常播放音乐。数据库

  

./hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp动画

AudioPolicyManagerBase::StreamDescriptor::StreamDescriptor()
: mIndexMin(0), mIndexMax(1), mCanBeMuted(true)
 {
   mIndexCur.add(AUDIO_DEVICE_OUT_DEFAULT, 3);
 }spa

这里会初始化一个声音,我发现我代码里mIndexCur.add(AUDIO_DEVICE_OUT_DEFAULT, 0);设的是0,因此没有声音,把他改一下就OK了。server

相关文章
相关标签/搜索