android 2.3 4.0 添加开机音乐
转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添加
- #include<media/AudioSystem.h>
- #include<media/mediaplayer.h>
2.在frameworks/base/cmds/bootanimation/BootAnimation.h中添加public方法:
起名为bootMusic(),形式如下:
- classBootAnimation:publicThread,publicIBinder::DeathRecipient
- {
- public:
- BootAnimation();
- virtual~BootAnimation();
- sp<SurfaceComposerClient>session()const;
- voidbootMusic();
3.在frameworks/base/cmds/bootanimation/BootAnimation.cpp中添加bootMusic的实现方法: [cpp] view plain copy
- voidBootAnimation::bootMusic()
- {
- intindex;
- MediaPlayer*mp=newMediaPlayer();
- 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();之间添加如下代码:
[cpp] view plain copy- sp<BootAnimation>boot=newBootAnimation();
- BootAnimation*animation=newBootAnimation();
- 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
转: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();
下面添加以下代码:
- intindex;
- MediaPlayer*mp=newMediaPlayer();
- if(mp->setDataSource("/system/etc/poweron.mp3",NULL)==NO_ERROR){
- mp->setAudioStreamType(AudioSystem::ENFORCED_AUDIBLE);
- mp->prepare();
- }
- AudioSystem::getStreamVolumeIndex(AudioSystem::ENFORCED_AUDIBLE,&index);
- if(index!=0){
- mp->seekTo(0);
- mp->start();
- }
修改android.mk 添加共享库
在 LOCAL_SHARED_LIBRARIES属性后面添加
libmedia 记得在前面一行加上 一个 \
最后把音乐丢到/system/etc目录下
记得加音频库头文件
更多相关文章
- Android SmartRefreshLayout下拉刷新上拉加载动画不动解决
- Android使用代码实现关机/重启
- android 开机动画修改以及默认壁纸
- 【知识点】android代码中设置margin
- Android蓝牙通信代码
- Android代码规范
- android典型代码系列(二十二)------按键使上面的EditText抖动
- android view的width或者height变化的动画