asysbang

 找回密码
 立即注册
查看: 2842|回复: 0
打印 上一主题 下一主题

开机动画播放视频

[复制链接]

520

主题

2

好友

6551

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2020-12-15 16:53:34 |只看该作者 |倒序浏览
+bool BootAnimation::video() {
+    const float MAX_FPS = 60.0f;
+    const float CHECK_DELAY = ns2us(s2ns(1) / MAX_FPS);
+    eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+    eglDestroySurface(mDisplay, mSurface);
+    sp<MediaPlayer> mp = new MediaPlayer();
+    mp->reset();
+    FILE* fp = fopen("/system/media/test.mp4", "r");
+    fseek(fp, 0, SEEK_END);
+    int length = ftell(fp);
+    ALOGD("========length %d",length);
+    rewind(fp);
+    int fd = fileno(fp);
+    ALOGD("========video %d",fd);
+    mp->setDataSource(fd , 0, length);
+    mp->setLooping(false);
+    Parcel*  _parcel = new Parcel;
+    mp->setParameter(100, *_parcel);
+    mp->setVideoSurfaceTexture(mFlingerSurface->getIGraphicBufferProducer());
+    mp->prepare();
+    ALOGD("========video start");
+    mp->start();
+    //usleep(10*1000*1000);
+    while(true) {
+        if(exitPending())
+            break;
+        usleep(CHECK_DELAY);
+        checkExit();
+    }
+    ALOGD("========video stop");
+    mp->stop();
+    return false;
+}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|aSys-帮 ( 京ICP备13033689号 )

GMT+8, 2026-1-28 16:14 , Processed in 0.046428 second(s), 19 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部