开机广告是在系统开机后实现播放视频功能。
海思Android解决方案在原生Android基础上,增加了开机视频模块,可在开机过程中
播放视频文件,使用户更好的体验系统开机过程。
vendor/hisilicon/modules/hibootvideo
frameworks/base/cmds/bootanimation
模块层次结构如下所示,开机视频先从media.player服务
中获取IMediaPlayer播放 器
进行媒体文件的播放。播放开机广告视频期间的音量调节在hiBootvideoInput 中
完成,并存储实时音量到service.bootvideo.volume
中,在视频播放完毕后通过
AudioService
统一刷新该音量至全局音量,播放开机广告视频期间的音量条显
示、静音显示、倒计时显示在HiBootvideoUI
中完成,在视频播放完毕后释放。
● 开机视频播放结束后可通过属性init.svc.bootvideo来判断,并销毁Window,释放用
于绘制图形的surface,在进入HiTvLancher时DTV/ATV端子源才能进行创建
Window并切源。
● 开机视频播放过程中设置的音量会存放在service.bootvideo.volume中,视频播放
完后,AudioService将service.bootvideo.volume刷新至全局音量。
● 开机视频播放过程中倒计时显示开关通过配置文件/product/etc/hi_boot_video_config.xml
中的属性isEnableCountDown
为true打开,中英文显示切换通过配置language="ch"表示中文显示,language="en"表示英文显示。倒计时显示背景图片可以推送到atv/bootvideo/countdown.png
替换。
默认开机视频播放流程:Kernel启动后播放单板/data/local/bootvideo.mp4
视频文
件,可通过判断属性init.svc.bootvideo
判断是否播放完成,播放完成后进入lancher
界面。
开机视频相关配置文件如下:
文件路径:/vendor/hisilicon/modules/hibootvideo/config.xml
device/hisilicon/bigfish/prebuilts/bootvideo.mp4
device/hisilicon/bigfish/prebuilts/mute.png
device/hisilicon/bigfish/prebuilts/panel.png
device/hisilicon/bigfish/prebuilts/Android.mk
device/hisilicon/Hi3751V350/device_property.mk
Property | 含义 |
---|---|
prop.service.bootop.type | 开机业务类型(bootvideo表示开机视频、bootanim表示开机动画、quickplay表示端子播放)三者配置互斥,同时只能选择一个配置场景 |
service.bootvideo.volume | 暂存音量值 |
init.svc.bootvideo | 开机视频播放结束标志 |
开机视频data/local/bootvideo.mp4
product/media/bootanimation.zip
注:开机视频文件全称应为bootvideo.mp4,
并放置到如上的指定目录下,其中bootanimation.zip应使用存储方式压缩生成
。
1> 通过在init.xxxx.rc中添加开机启动log服务,开机后导出log,搜索关键字
bootvideo进行分析。
例如:service get_log /system/bin/logcat -f/data/local/tmp/log.txt
class main
oneshot
2> 检查配置文件prop.service.bootop.type=bootvideo
是否满足,检查单板data/ local/bootvideo.mp4
文件是否存在,视频文件是否受损。
1> 检查开机视频文件最后一帧是否为黑帧。
2> 检查BootVideo进程是否退出,若退出后,而此时Lancher未启动会导致黑屏。
3> 检查开机视频时长LOCAL_BOOT_VIDEO_LIMIT
配置是否合理。
4> 检查静帧配置LOCAL_SUPPORT_LAST_FRAME
是否打开。
1> 通过 logcat | grep HiMW@ 查看MW音量设置情况,找到设置音量的进程。
2> 通过 logcat | grep -i audio 抓取串口日志,检查AudioService和AudioPolicyManager设置音量的时机。