Android7.0 开机播放mp4视频
作者:互联网
播放开机动画的代码主要位于 frameworks/base/cmds/bootanimation 目录下,
主要播放处理代码在 BootAnimation.cpp 和 BootAnimation.h 两个文件中,默认播放动画图片序列。
要修改为支持 mp4 播放,需要如下处理:
1. BootAnimation.h 添加两个成员:
bool video();
bool mVideo;
2. BootAnimation.cpp 修改:
a.
status_t BootAnimation::readyToRun() {
xxxxx
mVideo = false;
if(bBootOrShutDown &&
access("/system/media/boot.mp4", R_OK) == 0) {
mVideo = true;
}
return NO_ERROR;
}
b.bool BootAnimation::threadLoop()
{
xxxxxxxxx
if ((mZip == NULL)&&(mZipFileName.isEmpty())) {
r = android();
// add begin
} else if(mVideo) {
r = video();
// add end
} else {
if (!bETC1Movie) {
ALOGD("threadLoop() movie()");
r = movie();
} else {
ALOGD("threadLoop() ETC1movie()");
r = ETC1movie();
}
}
xxxxxxx
}
c.#include <media/IMediaHTTPService.h>
bool BootAnimation::video() // add
{
const float MAX_FPS = 60.0f;
//const bool LOOP = true;
const float CHECK_DELAY = ns2us(s2ns(1) / MAX_FPS);
sp<IMediaHTTPService> httpService;
eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglDestroySurface(mDisplay, mSurface);
#if 0
float asp = 1.0f * mWidth / mHeight;
SurfaceComposerClient::openGlobalTransaction();
mFlingerSurfaceControl->setPosition(mWidth, 0);
mFlingerSurfaceControl->setMatrix(0, 1 / asp, -asp, 0);
SurfaceComposerClient::closeGlobalTransaction();
#endif
sp<MediaPlayer> mp = new MediaPlayer();
//mp->reset();
if(bBootOrShutDown) {
mp->setDataSource(httpService, "/system/media/boot.mp4", NULL);
} else {
mp->setDataSource(httpService, "/system/media/shutdown.mp4", NULL);
}
mp->setLooping(true);
//Parcel* _parcel = new Parcel;
//mp->setParameter(100, *_parcel);
mp->setVideoSurfaceTexture(mFlingerSurface->getIGraphicBufferProducer());
mp->prepare();
mp->start();
while(true) {
if(exitPending())
break;
usleep(CHECK_DELAY);
checkExit();
}
mp->stop();
mp->disconnect();
mp.clear();
return false;
}
好了,mmm 这个模块,然后push到/system/bin目录下,注意视频文件也要传上去/system/media/boot.mp4
然后开机重启就播放视频了。
转载自:https://blog.csdn.net/zhbpd/article/details/79415748
参考:http://blog.csdn.net/dddxxxx/article/details/53944471
参考:http://blog.csdn.net/deeplee021/article/details/41042985
标签:system,Android7.0,mp4,bool,mp,开机,播放,BootAnimation 来源: https://blog.csdn.net/liangtianmeng/article/details/89316838