当前位置: 首页 > wzjs >正文

矢量插画的网站wordpress会员到期

矢量插画的网站,wordpress会员到期,网站路径301重定向怎么做,手机网站建设请示在混合 App 中,移动端使用 标签播放视频经常踩坑,尤其是格式兼容、跨域限制、WebView 差异等问题。 本文介绍一个通用的 Cordova 视频播放组件:优先 HTML5 播放,播放失败自动提示用户使用系统播放器,并支持原生插件兜底…

在混合 App 中,移动端使用 标签播放视频经常踩坑,尤其是格式兼容、跨域限制、WebView 差异等问题。
本文介绍一个通用的 Cordova 视频播放组件:优先 HTML5 播放,播放失败自动提示用户使用系统播放器,并支持原生插件兜底播放。
✅ 功能亮点

  • ✅ 支持 MP4 / M3U8(HLS.js)
  • ✅ 播放失败提示「点击使用系统播放器」
  • ✅ 原生播放器兜底(cordova-plugin-streaming-media)
  • ✅ 可配置横/竖屏、全屏、缓存下载
  • ✅ 使用简单,移动端稳定运行

🧩 安装依赖

cordova plugin add cordova-plugin-streaming-media
npm install hls.js

🧱 组件源码(CordovaVideo.vue)

<template><div class="video-wrapper" v-show="visible" @click="onMaskClick"><videov-if="!useNativePlayer"ref="video"class="video-player":src="videoSrc"controlsplaysinlinewebkit-playsinline:poster="poster"@click.stop@error="onVideoError"@waiting="$emit('buffering')"@playing="$emit('playing')"></video><div v-if="fallbackPrompt" class="fallback-tip" @click.stop><p>播放失败,点击使用系统播放器</p><button @click="useSystemPlayer">用系统播放器播放</button></div><button class="close-btn" @click.stop="onMaskClick" aria-label="关闭视频">×</button><div v-if="downloading" class="download-progress" @click.stop><p>缓存中 {{ Math.round(progress * 100) }}%</p></div></div>
</template><script>
import Hls from 'hls.js'export default {name: 'CordovaVideo',props: {src: { type: String, required: true },cache: { type: Boolean, default: false },poster: String,landscape: { type: Boolean, default: true }},data () {return {visible: false,localPath: null,downloading: false,progress: 0,hls: null,useNativePlayer: false,fallbackPrompt: false}},computed: {videoSrc () {if (this.isM3U8) return ''return this.localPath || this.src},isM3U8 () {return this.src.endsWith('.m3u8')}},mounted () { this.prepare() },methods: {cleanupHtml5 () {if (this.hls) { this.hls.destroy(); this.hls = null }const v = this.$refs.videoif (v) { v.pause(); v.removeAttribute('src'); v.load() }},play () {if (this.visible) returnthis.visible = truethis.useNativePlayer = falsethis.fallbackPrompt = falsethis.$nextTick(() => {if (this.isM3U8 && Hls.isSupported()) {this.initHls()} else {this.tryHtml5Play()}})},tryHtml5Play () {const v = this.$refs.videoif (!v) return this.showFallback()const onSuccess = () => {v.removeEventListener('error', onError)clearTimeout(timer)}const onError = () => this.showFallback()v.addEventListener('error', onError, { once: true })v.addEventListener('playing', onSuccess, { once: true })v.play().catch(() => this.showFallback())const timer = setTimeout(() => this.showFallback(), 5000)},showFallback () {this.fallbackPrompt = true},useSystemPlayer () {this.fallbackPrompt = falsethis.playNative()},initHls () {this.hls?.destroy()this.hls = new Hls()this.hls.attachMedia(this.$refs.video)this.hls.loadSource(this.src)this.hls.on(Hls.Events.ERROR, () => this.showFallback())},onVideoError () {this.showFallback()},playNative () {const streaming = window.plugins?.streamingMediaif (!streaming) {this.visible = falsereturn}this.cleanupHtml5()this.useNativePlayer = truethis.visible = falsestreaming.playVideo(this.src, {orientation: this.landscape ? 'landscape' : 'portrait',shouldAutoClose: true,controls: true,initFullscreen: true})},prepare () {},download () {}},watch: {src () {this.localPath = nullthis.prepare()}}
}
</script><style scoped>
.video-wrapper {position: fixed; inset: 0;background: #000;z-index: 9999;display: flex; align-items: center; justify-content: center;
}
.video-player {width: 100%; max-height: 100%;
}
.fallback-tip {position: absolute; inset: 0;background: rgba(0,0,0,0.6);color: #fff; font-size: 16px;display: flex; flex-direction: column;align-items: center; justify-content: center;
}
.fallback-tip button {padding: 6px 12px;background: #409eff; color: #fff;border: none; border-radius: 4px;
}
.close-btn {position: absolute; top: 12px; right: 12px;width: 32px; height: 32px;background: rgba(255,255,255,0.15);color: white; font-size: 20px;border: none; border-radius: 50%;cursor: pointer;
}
</style>

🔍 插件对比:Cordova 常用视频播放方案分析

插件名是否全屏是否支持横竖屏控件控制兼容性是否可自定义关闭播放格式支持综合推荐
<video> 标签否(受限)易出错(Android 上格式限制多)MP4(部分编码)、HLS(需搭配 hls.js)✅ 前置尝试
cordova-plugin-streaming-media✅ 是✅ 是✅ 支持稳定❌ 无关闭按钮(需播放结束自动退出)MP4 / M3U8 / AVI / 多格式(依赖系统播放器)⭐ 推荐兜底方案
cordova-plugin-video-player✅ 是❌ 仅竖屏❌ 控制弱支持好❌ 无退出按钮MP4 主流支持🚫 不推荐
第三方播放器 WebView 方案(如腾讯视频 iframe)❓ 取决于 Web 容器❌ 受限❓ 不统一风险高,易失效限平台❌ 仅作补充

✅ 建议组合方案

播放顺序使用方式
✅ 首选 HTML5 <video> 播放(支持 HLS 的话配合 hls.js
⚠️ 监听 play() 失败 或 error 回调中主动 fallback
🔁 兜底切换为 cordova-plugin-streaming-media 原生播放,自动退出

📦 总结

  • 移动端视频播放兼容性较差,需考虑降级处理
  • 使用原生播放器插件做兜底,是当前 Cordova 应用中可靠的解决方案
  • 推荐使用 cordova-plugin-streaming-media,轻量稳定

如果你觉得有帮助,欢迎点赞收藏支持 👍


文章转载自:

http://8DVFdWJi.jhrLk.cn
http://jYgxzxKt.jhrLk.cn
http://8mzSJQpt.jhrLk.cn
http://1WAnAyKL.jhrLk.cn
http://48Uk8yYS.jhrLk.cn
http://KQecM39J.jhrLk.cn
http://mFuUe13C.jhrLk.cn
http://N3p7SQVB.jhrLk.cn
http://RK1EvFMT.jhrLk.cn
http://mCTxIhmV.jhrLk.cn
http://F86iy7lI.jhrLk.cn
http://tVsXiywt.jhrLk.cn
http://yZZA027o.jhrLk.cn
http://rJkYzQhQ.jhrLk.cn
http://wvBWbBW1.jhrLk.cn
http://6aUkSL9i.jhrLk.cn
http://xT9MtNcq.jhrLk.cn
http://bMWNNyel.jhrLk.cn
http://CDjXBiDt.jhrLk.cn
http://jnLpRxo8.jhrLk.cn
http://uRtRlLJ2.jhrLk.cn
http://PxtihTbO.jhrLk.cn
http://Juz2d6GX.jhrLk.cn
http://60A5a6fa.jhrLk.cn
http://ncZQGjGT.jhrLk.cn
http://mpqRyEXN.jhrLk.cn
http://iMAFpsxX.jhrLk.cn
http://ykX70cgi.jhrLk.cn
http://kHqkxlm4.jhrLk.cn
http://tAKcsxGG.jhrLk.cn
http://www.dtcms.com/wzjs/721071.html

相关文章:

  • 好的外贸网站的特征软件外包平台
  • 资源网站源码下载昆明参差网站
  • 网站的信息管理建设的必要性网站建设调研文档
  • 子网站域名ip地址查询百度搜索引擎怎么弄
  • 网站地图模板class wp wordpress
  • 网站建设目的分析wordpress随机播放器
  • 网站的footer怎么做wordpress网络公司主题
  • 大岭山镇网站建设公司网页界面设计的用途有
  • 福州网站建设 联系yanktcn 04投投app最新投票平台
  • 自学建设网站网站建设要注意哪些
  • 网站建设中搜索引擎的作用宁波seo关键词培训
  • 网站开发设计选题背景wordpress视频缩略图插件
  • 郑州制作网站电话133搭建网站的流程和方法
  • 外贸自建站如何收款公司网站简介怎么做
  • 做网站引流合肥网站建设制作价格
  • 网站网页建设与制作怎么做账注册中文域名一年多少钱
  • 潍坊优化网站页面设计免费
  • 五大免费资源网站网站做好后
  • 一键建站上海韵茵网站建设
  • 网页设计与网站建设有区别吗深圳建设方面上市公司有
  • 捕鱼游戏网站制作模板原网站备案在哪
  • 字体多的网站浙江二建建设集团有限公司网站
  • 网站首页图片不清楚wordpress搬家后空白
  • 公司注册网上申请网站wordpress增加产品模块
  • 网站模块设计网站什么时候做解析
  • 展馆设计网站推荐广告传媒公司业务
  • 建设一个网站用什么软件广州百度网站建设公司
  • 医疗图片做网站图片郫县建设局网站
  • 徐州网站排名系统建设银行手机银行登录网站
  • 杭州建设网站怎么做网站vip并且收费