android添加开机声音
来源:互联网 发布:80端口为什么要备案 编辑:程序博客网 时间:2024/05/01 12:10
涉及文件:
frameworks/base/cmds/bootanimation/bootanimation.h
frameworks/base/cmds/bootanimation/bootanimation.cpp
frameworks/base/cmds/bootanimation/bootanimation_main.cpp
frameworks/base/cmds/bootanimation/Android.mk
另外要准备一个wav格式的开机音乐文件(时间不要太长了)
在bootanimation.h文件中增加如下代码:
class BootAnimation : public Thread, public IBinder::DeathRecipient
{
public:
BootAnimation();
virtual ~BootAnimation();
void bootMusic(); //Xandy 2013/03/22 xl19862005@126.com
sp<SurfaceComposerClient> session() const;
.
.
.
在bootanimation.cpp中增加相应的实现方法
void BootAnimation::bootMusic()
{
int index;
MediaPlayer* mp = new MediaPlayer();
if (mp->setDataSource("/system/media/audio/ui/boot.wav", NULL) == NO_ERROR)
{
mp->setAudioStreamType(AudioSystem::ENFORCED_AUDIBLE);
mp->prepare();
}
AudioSystem::getStreamVolumeIndex(AudioSystem::ENFORCED_AUDIBLE, &index);
if (index != 0)
{
mp->seekTo(0);
mp->start();
}
}
注意:这里我将开机音乐文件copy到了/system/media/audio/ui/boot.wav这个目录下面,可以在相应的vendor目录下面的AndroidBoard.mk里增加如下脚本代码:
# Bootsound
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/boot.wav:system/media/audio/ui/boot.wav
有了相应的实现方法和音乐文件,下面要在某个地方调用到我们实现的方法,这里调用的地方紧跟bootanimation调用的地方,在bootanimation_main.cpp里:
增加红色部分代码:
int main(int argc, char** argv)
{
#if defined(HAVE_PTHREADS)
setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY);
#endif
char value[PROPERTY_VALUE_MAX];
property_get("debug.sf.nobootanimation", value, "0");
int noBootAnimation = atoi(value);
LOGI_IF(noBootAnimation, "boot animation disabled");
if (!noBootAnimation) {
sp<ProcessState> proc(ProcessState::self());
ProcessState::self()->startThreadPool();
// create the boot animation object
sp<BootAnimation> boot = new BootAnimation();
//play boot boot music -Xandy
BootAnimation *animation = new BootAnimation();
animation->bootMusic();
IPCThreadState::self()->joinThreadPool();
}
return 0;
}
在bootanimation的Android.mk文件中加入音乐播放需要的shared libs
LOCAL_SHARED_LIBRARIES := \
libcutils \
libutils \
libbinder \
libui \
libskia \
libEGL \
libGLESv1_CM \
libsurfaceflinger_client \
libmedia
最后终端进入到frameworks/base/cmds/bootanimation/目录,运行mm 将会模块编译出相应的bootanimation bin文件!
提一句:
喜欢DIY的朋友可以把这个文件copy出来,找一首自己喜欢的开机音乐,按照上面所说的音乐存放目录把开机音乐放入自己的手机中,并把所得的bootanimation这个bin替换掉自己手机/system/bin目录下的bootanimation文件(之前一定要先备份原来的bootanimation,不然出了问题,我不负责啊!!),并把这个文件的权限设置成777
可以adb shell下面分别运行如下命令:
su
chmod 777 /system/bin/bootanimation
开机音乐存放目录:/system/media/audio/ui/boot.wav
音乐文件名只能是boot.wav!!!!
下面提供本人编译出来的bootanimation文件,下载地址:
http://download.csdn.net/detail/xl19862005/5170507
- android添加开机声音
- 修改Android开机图片、动画、声音
- Android添加开机音乐
- android添加开机音乐
- Android 手机第一次开机听筒 喇叭声音很小/概率性手机开机声音很小
- 添加android 4.0 开机音乐
- 添加android 4.0 开机音乐 .
- Android学习:为按键添加声音
- Android 下面三个按键添加声音
- Android学习:为按键添加声音
- Android学习:为按键添加声音
- Android 为按键添加声音(转载)
- android应用中为按键添加声音
- 如何修改Android启动动画和开机声音
- 电脑开机声音解释
- 去掉Ubuntu开机声音
- Ubuntu开机声音管理
- 开机报警声音
- bash参考手册之四(shell内建命令)续四
- iPhone开发教程 UI基础课程(58课时)
- SQL学习笔记8 ---触发器
- SQL优化-索引、查询优化及分页算法方案
- 迷宫找出路代码
- android添加开机声音
- 21个强大的Javascript框架
- [3月7日的脚本] 如何移除磁盘空间不足警告 (PowerShell)
- ASP.NET Single Page Application (SPA) and template libraries
- Servlet过滤器大全
- python共享内存
- 如何快速成为优秀的IT系统集成服务工程师?
- dede的sql语句调用方法妙用
- Struts2轻松实现多文件上传(自定义多线程加速程序效率)