添加Android 4.0 开机音乐

Android开机动画叫源码位于frameworks/base/cmds/bootanimation下,这个程序会将/data/local/bootanimation.zip或/system/media/bootanimation.zip里面的png图片以动画的形式播放出来,这段代码不支持音乐播放的,添加几段代码就能达到开机显示动画的时候播放音乐的效果了。

添加如下代码:

1.添加所需要的音频库头文件。在frameworks/base/cmds/bootanimation/BootAnimation.h添加

#include <media/AudioSystem.h>    #include <media/mediaplayer.h>  

2.在frameworks/base/cmds/bootanimation/BootAnimation.h中添加public方法:

起名为bootMusic(),形式如下:

class BootAnimation : public Thread, public IBinder::DeathRecipient   {   public:                   BootAnimation();       virtual     ~BootAnimation();          sp<SurfaceComposerClient> session() const;          void bootMusic();  

3.在frameworks/base/cmds/bootanimation/BootAnimation.cpp中添加bootMusic的实现方法:

void BootAnimation::bootMusic()   {       int index;       MediaPlayer* mp = new MediaPlayer();       if (mp->setDataSource("/system/etc/poweron.wav", NULL) == NO_ERROR) {           mp->setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE);           mp->prepare();       }       AudioSystem::getStreamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE, &index);       if (index != 0) {           mp->seekTo(0);           mp->start();       }      }  

4.在frameworks/base/cmds/bootanimation/bootanimation_main.cpp中

在sp<BootAnimation> boot = new BootAnimation();与 IPCThreadState::self()->joinThreadPool();之间添加如下代码:

sp<BootAnimation> boot = new BootAnimation();          BootAnimation *animation = new BootAnimation();          animation->bootMusic();          IPCThreadState::self()->joinThreadPool();  

5.修改frameworks/base/cmds/bootanimation/Android.mk

在LOCAL_SHARED_LIBRARIES字段中添加libmedia共享库,最后的形式如下:

LOCAL_SHARED_LIBRARIES := \       libcutils \       libutils \       libbinder \       libui \       libskia \       libEGL \       libGLESv1_CM \       libgui\       libmedia  

最后编译:mmm  frameworks/base/cmds/bootanimation/

将生成的bootanimation push进去,命令:adb push out/target/product/ventana/system/bin/bootanimation /system/bin/

同时将名字为poweron.wav的音频格式push到/system/etc/下 。

进入adb shell可以测试一下效果,在命令行上敲bootanimation命令即可。

#bootanimation

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wywxsj.html