Android12 添加开机铃声

系统默认是没有播放开机铃声的功能,MTK有一套自己的开机铃声处理逻辑,代码在/vendor/mediatek/proprietary/operator/frameworks/bootanimation/MtkBootanimation下,但是在10之后MTK就不在维护这部分代码了。直接使用会有很多编译报错,现在把MTK播放铃声的逻辑移植过来。

移植铃声播放功能
  • /frameworks/base/cmds/bootanimation/BootAnimation.cpp
index 958558669ef..3b4eb12ee00 100755
--- a/frameworks/base/cmds/bootanimation/BootAnimation.cpp
+++ b/frameworks/base/cmds/bootanimation/BootAnimation.cpp
@@ -59,10 +59,20 @@
 
 #include "BootAnimation.h"
 
+#include <media/IMediaHTTPService.h>
+#include <media/mediaplayer.h>
+#include <media/MediaPlayerInterface.h>
+
 #define ANIM_PATH_MAX 255
 #define STR(x)   #x
 #define STRTO(x) STR(x)
 
+#define PATH_COUNT 2
+static const char* mAudioPath[2][PATH_COUNT] =
+    {
   
   {
   
   "/system/media/bootaudio.mp3", "/custom/media/bootaudio.mp3"} , /*  bootaudio path  */
+     {
   
   "/system/media/shutaudio.mp3", "/custom/media/shutaudio.mp3"} /*  shutaudio path  */
+    };
+
 namespace android {
   
   
 
 using ui::DisplayMode;
@@ -123,6 +133,11 @@ BootAnimation::BootAnimation(sp<Callbacks> callbacks)
     } else {
   
   
         mShuttingDown = true;
     }
+
+    bPlayMP3 = true;
+    mBootVideoPlayState = MEDIA_NOP;
+    bAudioStarted = false;
+
     ALOGD("%sAnimationStartTiming start time: %" PRId64 "ms", mShuttingDown ? "Shutdown" : "Boot",
             elapsedRealtime());
 }
@@ -136,6 +151,50 @@ BootAnimation::~BootAnimation() {
   
   
             elapsedRealtime());
 }
 
+BootVideoListener::BootVideoListener(const sp<BootAnimation> &bootanim) {
   
   
+    ALOGD("[MtkBootAnimation %s %d]",__FUNCTION__,__LINE__);
+    mBootanim = bootanim;
+}
+BootVideoListener::~BootVideoListener() {
   
   
+    ALOGD("[MtkBootAnimation %s %d]",__FUNCTION__,__LINE__);
+}
+void BootVideoListener::notify(int msg, int ext1, int ext2, const Parcel *obj) {
   
   
+    ALOGD("[MtkBootAnimation %s %d] msg=%d ext1=%d ext2=%d",__FUNCTION__,__LINE__, msg, ext1, ext2);
+    if(msg == MEDIA_PLAYBACK_COMPLETE || msg == MEDIA_SEEK_COMPLETE) {
   
   
+        mBootanim->setBootVideoPlayState(MEDIA_PLAYBACK_COMPLETE);
+        ALOGD("[MtkBootAnimation %s %d] media player complete",__FUNCTION__,__LINE__);
+    }
+    if(msg == MEDIA_ERROR || msg == MEDIA_SKIPPED) {
   
   
+        mBootanim->setBootVideoPlayState(MEDIA_ERROR);
+        ALOGD("[MtkBootAnimation %s %d] media player error",__FUNCTION__,__LINE__);
+    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值