Chinaunix首页 | 论坛 | 博客
  • 博客访问: 128001
  • 博文数量: 16
  • 博客积分: 355
  • 博客等级: 一等列兵
  • 技术积分: 237
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-01 22:01
文章分类

全部博文(16)

文章存档

2012年(16)

我的朋友

分类: 嵌入式

2012-07-03 10:30:58

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(); sp<SurfaceComposerClient> session()const;
  6.         void bootMusic();
  7. }

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.   
  15. }

4.在frameworks/base/cmds/bootanimation/bootanimation_main.cpp中
在sp 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共享库


按照setDataSource("/system/etc/poweron.wav", NULL) == NO_ERROR) 里所给的路径和文件名添加相对应的名称和音乐文件格式到指定的目录就OK了.



阅读(2129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~