android新增開機音樂
阿新 • • 發佈:2019-01-04
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
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