Android 5.0 以上开机音乐实现
在Android 4.4上开机音乐,要实现开机音乐。通过在BootAnimation 中加入以下代码便可
void BootAnimation::playMusic()
{sp<MediaPlayer> mp = new MediaPlayer();if ((0 == access(BOOTMUSIC_FILE, F_OK)) && mp != NULL) {mp->setDataSource(BOOTMUSIC_FILE, NULL);mp->setVolume(0.5,0.5);mp->prepare();mp->start();}
}
但是在5.1 和 6.0 上以上步骤就行不通了。由于BootAnimation是由surfaceflinger 启动,在5.0以上系统中,由于BootAnimation 启动的时候,Mediasever 还没有完全启动,所以上面代码不能播放音乐。至于为什么在4.4 上Mediasever 已经启动,而5.1 以上系统没有启动呢? 因为在5.1 系统服务比4.4 多了一个电池统计服务,启动较慢导致Mediasever 没有启动成功。
那怎么样才能播放开机音乐呢?其实在5.1 以上的系统android 在BootAnimation中预留了AudioPlayer的服务。它可以直接操作pcm 播放wav 格式的音乐。但是前提是你要自己配置audio_conf 文件。下面是笔者自己的配置文件。这个文件的配置要和硬件保持一致,具体配置可以参考hardware 中关于音频硬件的配置,笔者的硬件是RT3261
card=0
device=0
period_size=1024
period_count=4
mixer "I2S Switch"=1
mixer "ASRC Switch"=Disable
mixer "Speaker Playback Switch"=0 0
mixer "OUT Playback Switch"=0 0
mixer "Modem Input Switch"=0 0
mixer "DAC L2 Mux"=IF2
mixer "DAC R2 Mux"=IF2
mixer "Mono dacr Mux"=TxDC_R
mixer "DACR Select"=IF2_DAC
mixer "Mono DAC MIXL DAC L2 Switch"=1
mixer "Mono DAC MIXR DAC R2 Switch"=1
mixer "DAC MIXL INF1 Switch"=1
mixer "DAC MIXR INF1 Switch"=1
mixer "Stereo DAC MIXL DAC L1 Switch"=1
mixer "Stereo DAC MIXR DAC R1 Switch"=1
mixer "SPK MIXL DAC L2 Switch"=1
mixer "SPK MIXR DAC R2 Switch"=1
mixer "Speaker Playback Volume"=32 31
mixer "Mono DAC Playback Volume"=175 173
mixer "DAC1 Playback Volume"=175 173
mixer "Class D SPK Ratio Control"=10
mixer "RECMIXL BST2 Switch"=0
mixer "Stereo ADC MIXL ADC1 Switch"=0
mixer "DAC MIXL Stereo ADC Switch"=0
mixer "Mono DAC MIXL DAC L1 Switch"=0
mixer "OUT MIXL DAC L2 Switch"=0
mixer "SPK MIXL OUT MIXL Switch"=0
mixer "OUT MIXR DAC L2 Switch"=0
mixer "SPK MIXR OUT MIXR Switch"=0
mixer "Stereo DAC MIXR DAC R2 Switch"=0
mixer "LOUT MIX DAC R1 Switch"=0
mixer "Stereo DAC MIXL DAC L2 Switch"=0
mixer "LOUT MIX DAC L1 Switch"=0
mixer "OUT MIXR DAC R2 Switch"=0
mixer "HPO MIX HPVOL Switch"=0
mixer "OUT MIXL DAC L1 Switch"=0
mixer "OUT MIXL DAC L1 Switch"=0
mixer "OUT MIXL REC MIXL Switch"=0
mixer "OUT MIXL REC MIXL Switch"=0
mixer "DAC MIXR Stereo ADC Switch"=0
mixer "Speaker Playback Switch"=1 1
mixer "I2S Switch"=1
制作好audio_conf.txt文件后,将其放到开机动画的目录中,打包之后放入相应目录,即可播放开机音乐。
Android 5.0 以上开机音乐实现相关推荐
- android开机音乐相关,Android 5.0 以上开机音乐实现
在Android 4.4上开机音乐,要实现开机音乐.通过在BootAnimation 中加入以下代码便可 1 2 3 4 5 6 7 8 9 10 11void BootAnimation::play ...
- Android 9.0 10蓝牙音乐获取歌手、歌曲等信息
Android 9.0中蓝牙音乐其实实现很简单,蓝牙远程服务处理在Bluetooth中. 修改代码路径: android/packages/apps/Bluetooth./jni/com_androi ...
- android 4.0.3开机时不能收到广播
============问题描述============ 在android 4.0.3的手机上,receiver在手机开机后收不到启动广播,代码如下: 配置文件: <receiver an ...
- android 6.0关闭开机启动器,Android实现开机自启动及开机自启动失败原因
1.开机自启动实现代码 BroadcastReceiver开机自启动实现,MainActivity.class为自启动显示的页面. public class BootBroadcastReceiver ...
- Android 9.0 延时开机动画解决首次开机黑屏和去掉android正在启动的提示框
1.概述 在9.0的系统产品rom定制化开发中,在一些产品中会出现在首次开机的时候,由于在开机动画播放完以后会出现几秒短暂的黑屏情况,然后进入默认Launcher,这在产品体验上 也是感觉到有点差,所 ...
- Android 7.0平台开机启动
Android 启动概述 Android 系统是运行在Linux 内核上的,所以它的启动过程则是基于kernel的启动发生的.首先Kernel启动过程中会创建用户空间的第一个进程init进程,该进程也 ...
- android 9.0定时开机的实现
最近项目要实现定时开机的功能,现在做个笔记记录一下,以防以后忘记,代码如下: private void setPowerOnAlarm(Context mContext) { //定时开机时间,时间设 ...
- android 10.0添加开机铃声
在定制化系统中,默认是没有开机铃声的,有客户提出需要要添加开机铃声,所以为了 完成需求,就来实现这一个功能 关于开机铃声 都是在bootanimation_main.cpp 这里面负责管理 frame ...
- android 11.0添加开机铃声
1.概述 在11.0在定制化系统中,默认是没有开机铃声的,有客户提出需要要添加开机铃声,所以为了 完成需求,就来实现这一个功能 关于开机铃声 都是在BootAnimation.cpp 这里面负责管理 ...
最新文章
- 力扣(LeetCode)刷题,简单题+中等题(第20期)
- JSTL EL对Map集合的支持
- 锐捷设备密码破解方法
- 速率法和终点法的区别_生化分析仪检测中的终点法、两点法、双波长法有什么区别...
- 如何捕获 EF 生成的 SQL 脚本?
- mysql二级缓存redis_SpringBoot+Mybatis+redis(二级缓存)搭建
- python 贴吧自动回复_利用Python实现微信自动回复!我打游戏再也不怕女朋友发信息了...
- 如何用python打印田字格_如何用EXCEL做一套田字格模板?在家给小孩练习写字
- 华彬 - 华彬讲透孙子兵法(2015年5月22日)
- html购物车结算代码,JavaScript购物车结算案例
- c语言lua游戏辅助,Lua游戏脚本语言入门
- python xlwt_python xlwt模块简介
- 三星手机GT-S7898连不上电脑,无法调试
- 代理模式(自己实现源码)
- python中单引号的作用_Python中单引号,双引号,3个引号的用法
- 输入一个大写或者小写,输出其相反的大小写。(c语言)
- 百度图片翻译API,对开发者真的很友好
- 学计算机心得体会50字,阅读心得体会50字
- 技术之外——哀悼我的大学舍友
- Redis缓存一致性问题解决方案