转http://blog.csdn.net/k_linux_man/article/details/7282958



android 4.0 开机音乐



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

添加如下代码:

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

[cpp] view plain copy
  1. #include<media/AudioSystem.h>
  2. #include<media/mediaplayer.h>

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

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


[cpp] view plain copy
  1. classBootAnimation:publicThread,publicIBinder::DeathRecipient
  2. {
  3. public:
  4. BootAnimation();
  5. virtual~BootAnimation();
  6. sp<SurfaceComposerClient>session()const;
  7. voidbootMusic();


3.在frameworks/base/cmds/bootanimation/BootAnimation.cpp中添加bootMusic的实现方法: [cpp] view plain copy
  1. voidBootAnimation::bootMusic()
  2. {
  3. intindex;
  4. MediaPlayer*mp=newMediaPlayer();
  5. if(mp->setDataSource("/system/etc/poweron.wav",NULL)==NO_ERROR){
  6. mp->setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE);
  7. mp->prepare();
  8. }
  9. AudioSystem::getStreamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE,&index);
  10. if(index!=0){
  11. mp->seekTo(0);
  12. mp->start();
  13. }
  14. }

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

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

[cpp] view plain copy
  1. sp<BootAnimation>boot=newBootAnimation();
  2. BootAnimation*animation=newBootAnimation();
  3. animation->bootMusic();
  4. IPCThreadState::self()->joinThreadPool();



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

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


[cpp] view plain copy
  1. LOCAL_SHARED_LIBRARIES:=\
  2. libcutils\
  3. libutils\
  4. libbinder\
  5. libui\
  6. libskia\
  7. libEGL\
  8. libGLESv1_CM\
  9. libgui\
  10. 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



转:http://blog.csdn.net/a26483298/article/details/7572308

android 2.3

android2.3.4/frameworks/base/cmds/bootanimation/bootanimation_main.cpp

在sp<ProcessState> proc(ProcessState::self());
ProcessState::self()->startThreadPool();

下面添加以下代码:

[java] view plain copy
  1. intindex;
  2. MediaPlayer*mp=newMediaPlayer();
  3. if(mp->setDataSource("/system/etc/poweron.mp3",NULL)==NO_ERROR){
  4. mp->setAudioStreamType(AudioSystem::ENFORCED_AUDIBLE);
  5. mp->prepare();
  6. }
  7. AudioSystem::getStreamVolumeIndex(AudioSystem::ENFORCED_AUDIBLE,&index);
  8. if(index!=0){
  9. mp->seekTo(0);
  10. mp->start();
  11. }


修改android.mk 添加共享库

在 LOCAL_SHARED_LIBRARIES属性后面添加
libmedia 记得在前面一行加上 一个 \


最后把音乐丢到/system/etc目录下



记得加音频库头文件

更多相关文章

  1. Android SmartRefreshLayout下拉刷新上拉加载动画不动解决
  2. Android使用代码实现关机/重启
  3. android 开机动画修改以及默认壁纸
  4. 【知识点】android代码中设置margin
  5. Android蓝牙通信代码
  6. Android代码规范
  7. android典型代码系列(二十二)------按键使上面的EditText抖动
  8. android view的width或者height变化的动画

随机推荐

  1. Android Asynchronous Http Client 中文
  2. android开发专题系列-Android开发指南
  3. material design 的android开源代码整理
  4. Android(安卓)在 Fragment 中集成 React-
  5. android使用xml实现虚线效果
  6. Android Framework(III)Spring-mobile an
  7. 一些英文面试题(Android)
  8. Android ServiceManager源码(一)-- C语言部
  9. android实现关键字搜索功能
  10. Android通信详解