本文主要是介绍Android添加开机音乐的具体方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Android学习开发之路21--Android添加开机音乐的具体方法
Android启动时第三段开机动画叫bootanimation,源码位于frameworks/base/cmds/bootanimation下,这个程序会将/data/local/bootanimation.zip或/system/media/bootanimation.zip里面的png图片以动画的形式播放出来,具体怎么制作这个压缩包,网上有很多的示例,在此不再赘述;
这段代码默认是不支持音乐播放的,想要添加开机音乐(与第三段开机动画bootanimation同步),最好就加这里啦,
下面先提供一段c++代码,在android下编译成可执行程序之后运行就能播放音乐了:
test.cpp:
- #define LOG_TAG "TEST_MP3"
- #include <binder/IPCThreadState.h>
- #include <media/AudioSystem.h>
- #include <media/mediaplayer.h>
- using namespace android;
- int main(int argc, char *argv[])
- {
- sp<ProcessState> proc(ProcessState::self());
- ProcessState::self()->startThreadPool();
- int index;
- MediaPlayer* mp = new MediaPlayer();
- if (mp->setDataSource("/sdcard/bootup.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();
- }
- IPCThreadState::self()->joinThreadPool();
- return 0;
- }
- LOCAL_PATH:= $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_SRC_FILES:= \
- test.cpp
- LOCAL_SHARED_LIBRARIES := \
- libui \
- libutils \
- libbinder \
- libcutils \
- libmedia \
- libcamera_client \
- libsurfaceflinger_client
- LOCAL_C_INCLUDES := \
- $(call include-path-for, corecg graphics) \
- LOCAL_MODULE:= test_mp3
- LOCAL_MODULE_TAGS=optional
- include $(BUILD_EXECUTABLE)
其实播放的代码就是:
- int index;
- MediaPlayer* mp = new MediaPlayer();
- if (mp->setDataSource("/sdcard/bootup.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();
- }
- sp<ProcessState> proc(ProcessState::self());
- ProcessState::self()->startThreadPool();
- IPCThreadState::self()->joinThreadPool();
之间,否则在MediaPlayer prepare的时候会收不到系统发回的已经准备完成的消息。仿照上面的例子,将播放的代码加到bootanimation_main.cpp适当的位置,就可以播放开机音乐了哦
参考资料:
学习教程与开发资料下载:
Android 15本经典教程和150多个实例源码
Android APP开发年终总结——日均160元的收入经历
成为Android高手必须掌握的28大项内容和10个建议
成为Java高手需要达到的25个学习目标--经典
24本经典Arm教程与学习开发资料下载
18本经典PHP教程与开发资料下载
2000年-2011年cet4历年24份真题和答案(含详细解析)
14本名师经典励志教程
这篇关于Android添加开机音乐的具体方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!