android添加开机音乐

http://wenku.baidu.com/view/d8b12044a8956bec0975e34a.html

forevery: 以下可在cm7中试验,但无效果。
1. 解压缩附件,拷贝至 /system/bin,修改权限:644
2. 将底下分隔线之间的内容加入/system/etc/init.local.rc:
-------------------- start ---------------------------
service bootsound /system/bin/bootsound
user media
group audio
disabled
oneshot

on property:init.svc.bootanim=running
start bootsound

on property:dev.bootcomplete=1
stop bootsound
---------------------- end -----------------------------

3. 选一个音乐文件改名为"android_audio.mp3" ,拷贝至 /system/media,修改权限:644
4. 将 "ro.config.play.bootsound=1" 加入 /system/build.prop
5. 重启手机体验


××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

源码方式(http://bbs.gfan.com/android-3694760-1-1.html):
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
发布了22 篇原创文章 · 获赞 3 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览