歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 添加Android 4.0 開機音樂

添加Android 4.0 開機音樂

日期:2017/3/1 10:29:01   编辑:Linux編程

Android開機動畫叫源碼位於frameworks/base/cmds/bootanimation下,這個程序會將/data/local/bootanimation.zip或/system/media/bootanimation.zip裡面的png圖片以動畫的形式播放出來,這段代碼不支持音樂播放的,添加幾段代碼就能達到開機顯示動畫的時候播放音樂的效果了。

添加如下代碼:

1.添加所需要的音頻庫頭文件。在frameworks/base/cmds/bootanimation/BootAnimation.h添加

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

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

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

  1. class BootAnimation : public Thread, public IBinder::DeathRecipient
  2. {
  3. public:
  4. BootAnimation();
  5. virtual ~BootAnimation();
  6. sp<SurfaceComposerClient> session() const;
  7. void bootMusic();

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

  1. void BootAnimation::bootMusic()
  2. {
  3. int index;
  4. MediaPlayer* mp = new MediaPlayer();
  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();之間添加如下代碼:

  1. sp<BootAnimation> boot = new BootAnimation();
  2. BootAnimation *animation = new BootAnimation();
  3. animation->bootMusic();
  4. IPCThreadState::self()->joinThreadPool();

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

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

  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

Copyright © Linux教程網 All Rights Reserved