Android 4.0の起動音楽を追加します.
4449 ワード
Android起動アニメーションはframeworks/base/cmds/bootanimationの下にソースコードと呼ばれ、このプログラムは/data/local/bootanimationになります.zipまたは/system/media/bootanimation.zipの中のpngのピクチャーはアニメーションの形式で放送して、このコードは音楽の放送を支持しないで、いくつかのコードを追加して機械をスタートさせてアニメーションを表示する時音楽の効果を再生することができます.
次のコードを追加します.
1.必要なオーディオヘッダファイルを追加します.frameworks/base/cmds/bootanimation/BootAnimation.h追加
[cpp] view plain copy print ?
#include #include
2.frameworks/base/cmds/bootanimation/BootAnimation.hにpublicメソッドを追加するには:
bootMusic()と名付けられ、形式は以下の通りである.
[cpp] view plain copy print ?
class BootAnimation : public Thread, public IBinder::DeathRecipient {
public: BootAnimation();
virtual ~BootAnimation();
sp session() const;
void bootMusic();
3.frameworks/base/cmds/bootanimation/BootAnimation.cppにbootMusicを追加する方法:
[cpp] view plain copy print ?
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中
spboot=new BootAnimation();IPCThreadState::self()->joinThreadPool();間に次のコードを追加します.
[cpp] view plain copy print ?
sp boot = new BootAnimation(); BootAnimation *animation = new BootAnimation();
animation->bootMusic(); IPCThreadState::self()->joinThreadPool();
5.frameworks/base/cmds/bootanimation/Androidを修正する.mk
LOCAL_でSHARED_LIBRARIESフィールドにlibmedia共有ライブラリを追加します.最後の形式は次のとおりです.
[cpp] view plain copy print ?
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/k_linux_man/article/details/7282958
次のコードを追加します.
1.必要なオーディオヘッダファイルを追加します.frameworks/base/cmds/bootanimation/BootAnimation.h追加
[cpp] view plain copy print ?
#include
#include <media/AudioSystem.h>
#include <media/mediaplayer.h>
2.frameworks/base/cmds/bootanimation/BootAnimation.hにpublicメソッドを追加するには:
bootMusic()と名付けられ、形式は以下の通りである.
[cpp] view plain copy print ?
class BootAnimation : public Thread, public IBinder::DeathRecipient
public:
virtual ~BootAnimation();
sp
void 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を追加する方法:
[cpp] view plain copy print ?
void BootAnimation::bootMusic()
int index;
if (mp->setDataSource("/system/etc/poweron.wav", NULL) == NO_ERROR) {
mp->prepare();
AudioSystem::getStreamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE, &index);
mp->seekTo(0);
}
}
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
[cpp] view plain copy print ?
sp
animation->bootMusic();
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共有ライブラリを追加します.最後の形式は次のとおりです.
[cpp] view plain copy print ?
LOCAL_SHARED_LIBRARIES := \
libutils \
libui \
libEGL \
libgui\
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/k_linux_man/article/details/7282958