uniapp 开屏视频 以及解决开屏视频播放前短暂白屏或黑屏的情况

server/2024/12/23 13:01:19/

uniapp 开屏视频 以及解决开屏视频播放前短暂白屏或黑屏的情况

  1. 废话不多说 直接上代码
<template><view class=""><video :style='{opacity: play }' :preferred-peak-bit-rate="284" :autoplay="true" :loop="true" object-fit='fill'class="video" id="videos" :enable-progress-gesture="true" :controls="false" @ended="" @play="onPlay"@timeupdate="videoEnd" :show-fullscreen-btn="true" @ended='goIndex' :src="videoUrl" :show-center-play-btn="false"@loadedmetadata="loadedmetadata"></video><view class="btn" @click='goIndex'>跳过&nbsp;&nbsp;{{duration}}</view><image  :style='{opacity: play==1?0:1 }' style="position: absolute;left: 0;top: 0; width: 100%;height: 100vh;":src="videoData.videoAddress" mode=""></image></view>
</template><script>export default {data() {return {videoUrl: '',videoData: {videoAddress: '',addressSort: 0},duration: "",play: 0,videoContext: null,recommendFn: null}},onLoad() {// 调用接口 获取 开屏视频  以及 占位图片this.getSwiper()},onShow() {// 每次计入页面都接着上次倒计时继续if (!this.recommendFn && this.duration!=="") {this.recommendFn = setInterval(() => {if (this.duration >= 1) {this.duration = parseInt(this.duration) - 1} else {clearInterval(this.recommendFn)this.recommendFn = nullthis.goIndex()}}, 1000)}},onHide() {// 页面隐藏时  停止计时clearInterval(this.recommendFn)this.recommendFn = null},methods: {getSwiper() {let that = this// 获取 开屏视频  以及 占位图片  和 倒计时// 更具自及的需要 也可直接写死that.$uniApi.dataRequestNoLoading('get', `base/app/v1/commonVideo/list`).then(res => {// 视频urlthat.videoUrl = res.data[0].videoUrl// 图片urlthat.videoData.videoAddress = res.data[0].indexImgUrl// 倒计时that.duration = res.data[0].videoDuration// 开始倒计时if (!that.recommendFn) {that.recommendFn = setInterval(() => {if (that.duration >= 1) {that.duration = parseInt(that.duration) - 1} else {clearInterval(that.recommendFn)that.recommendFn = null// 倒计时结束后  跳转页面that.goIndex()}}, 1000)}that.videoEnd()}).catch(err => {})},loadedmetadata(e) {let that = this// 此处延时 就是为了解决白屏或黑屏的情况setTimeout(() => {that.play = 1}, 500)},goIndex() {uni.switchTab({url: '倒计时完成跳转到其他页面'})},onPlay() {let that = this// 此处延时 就是为了解决白屏或黑屏的情况setTimeout(() => {that.play = 1}, 500)},videoEnd(e) {}}}
</script><style>.video {width: 100%;height: 100vh;}.btn {width: 170rpx;height: 54rpx;background: rgba(255, 255, 255, 0.5);border-radius: 30rpx;border: 1rpx solid #FFFFFF;font-family: Source Han Sans SC, Source Han Sans SC;font-weight: 400;font-size: 26rpx;color: #222222;line-height: 30rpx;position: absolute;top: 240rpx;right: 22rpx;line-height: 54rpx;text-align: center;z-index: 10;}
</style>
  1. 在这里插入图片描述

  2. ok 搞定! 可直接用


http://www.ppmy.cn/server/59955.html

相关文章

arm64架构下源码编译安装kafka —— 筑梦之路

一般来说&#xff0c;直接使用官方提供的二进制文件即可&#xff0c;没有必要使用源码编译安装的方式&#xff0c;而对于有特殊用途的&#xff0c;选择源码编译安装无疑是更好地选择。比如修改源码实现想要的功能&#xff0c;mirrormaker2保持topic名称不变。 git clone https…

医疗器械FDA |FDA网络安全测试具体内容

医疗器械FDA网络安全测试的具体内容涵盖了多个方面&#xff0c;以确保医疗器械在网络环境中的安全性和合规性。以下是根据权威来源归纳的FDA网络安全测试的具体内容&#xff1a; 一、技术文件审查 网络安全计划&#xff1a;制造商需要提交网络安全计划&#xff0c;详细描述产…

Python 3.x 下的 3D 游戏引擎

在 Python 3.x 中&#xff0c;有几个比较流行的用于开发 3D 游戏的引擎和库。虽然 Python 自身不是一个主流的游戏开发语言&#xff0c;但是可以通过这些库和引擎结合其它语言或者底层渲染引擎来实现复杂的游戏开发。 1、问题背景 在 Linux 系统中&#xff0c;尤其是 Debian 7…

ONLYOFFICE8.1版本桌面编辑器——功能测评

在当今数字化办公的时代&#xff0c;一款高效、强大且易用的办公软件对于提高工作效率至关重要。ONLYOFFICE 8.1 版本桌面编辑器&#xff08;ONLYOFFICE8.1版本桌面编辑器&#xff09;作为一款备受关注的办公套件&#xff0c;带来了一系列令人瞩目的新特性和改进。接下来&#…

软考数据库——第七章关系数据库(知识点介绍和历年真题)

软考数据库第七章关系数据库 笔记 7.1 关系数据库概述 主要考点 1、相关名词 2、关系数据库模式 3、关系的三种类型 4、关系的完整性约束 相关名词 1、关系:在关系数据库中,实体以及实体间的联系都是用关系来表示的。类似于程序设计语言中变量的概念。 2、关系模式:是对…

音视频解封装demo:使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据

1、README 前言 本demo是使用的mp4v2来将mp4文件解封装得到h264、aac的&#xff0c;目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的&#xff0c;如果想在其他环境下测试demo&#xff0c;可以自行编译mp4v2并替换相应的库文件&#xff08;libmp4v2.a&#…

强化学习驱动的狼人游戏语言智能体战略玩法

Language Agents with Reinforcement Learning for Strategic Play in the Werewolf Game 论文地址: https://arxiv.org/abs/2310.18940https://arxiv.org/abs/2310.18940 1.概述 在AI领域,构建具备逻辑推理、战略决策以及人类沟通能力的智能体一直被视为长远追求。大规模语…

C#实现最短路径算法

创建点集 double r 200 * 500;double width 1920;double height 1080;int col (int)(r / width);int row (int)(r / height);List<(double, double)> list1 new List<(double, double)>();for (int i 0; i < row; i){var y i * height;if (y < r){va…