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

管局备案网站wordpress内容页文字红色

管局备案网站,wordpress内容页文字红色,建筑网页设计详情,重庆做网站找谁最近用video 进行m3u8视频文件播放,但是途中遇到了 安卓和电脑端都能打开,ios有时可以播放有时播放不了 出现问题原因: ios拿到视频流前需要预加载视频,如果当前视频流还没有打开过,ios拿不到视频流的缓存,…

最近用video 进行m3u8视频文件播放,但是途中遇到了 安卓和电脑端都能打开,ios有时可以播放有时播放不了

出现问题原因:
ios拿到视频流前需要预加载视频,如果当前视频流还没有打开过,ios拿不到视频流的缓存,这时候ios会一直转圈直到报错

解决思路:
(1)先打开一个播放窗口,提前加载视频流
(2)判断当前video的 readyState 属性
(3)当readyState的状态码不等于0时,创建当前预览的video

html代码:

 <!-- 视频播放 start--><div class="monitor-preview__video"><div id="videoBox" style="width: 94vw; height: 25vh;"><videoid="VideoPreview"class="video-js vjs-default-skin vjs-big-play-centered"controlsstyle='width: 100%;height: 100%;'x5-video-player-fullscreen="true"webkit-playsinlinex5-playsinlineplaysinlinex-webkit-airplay="allow"><source :src="this.formData.path" type="application/x-mpegURL"></video></div></div><!-- 视频播放 end--><!-- ios 直接打开视频预览有问题,所以这里搞一个播放预加载界面start--><div id="copyVideoBox" v-show="false"><videoid="copyVideoPreview"class="video-js vjs-default-skin vjs-big-play-centered"controlspreload="metadata"style='width: 0;height: 0;'x5-video-player-fullscreen="true"webkit-playsinlinex5-playsinlineplaysinlinex-webkit-airplay="allow"autoplay><source :src="this.formData.path" type="application/x-mpegURL"></video></div><!-- 取一个预加载界面end-->

js代码:

    /*** @param device 设备信息* 切换视频*/async checkDevice (device) {if (device && device.sysCameraCode) {this.formData.deviceName = device.cameraNameconst queryParams = {sysCameraCode: device.sysCameraCode,apiPath: window.location.origin}const videoRes = await this.$api.monitorPerm.preview(queryParams)this.formData.path = videoRes.result.previewUrlthis.prepareVideo ()}},/*** 预加载视频信息* ios 直接打开视频预览有问题,所以这里搞一个播放预加载界面start*/prepareVideo () {const isIos = navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/)if (!isIos) {this.reloadVideoDom()return}// 清空旧的预览信息this.clearVideoDom()if (this.formData.copyVideo) {this.formData.copyVideo.dispose()}this.formData.copyVideo = nullconst videoBox = document.getElementById('copyVideoBox')const VideoPreview = document.getElementById('copyVideoPreview')if (VideoPreview) {videoBox.removeChild(VideoPreview)}videoBox.innerHTML = '<video\n' +'          id="copyVideoPreview"\n' +'          class="video-js vjs-default-skin vjs-big-play-centered"\n' +'          controls\n' +'          preload="metadata"\n' +'          style=\'width: 100%;height: 100%;\'\n' +'          x5-video-player-fullscreen="true"\n' +'          webkit-playsinline\n' +'          x5-playsinline\n' +'          playsinline\n' +'          x-webkit-airplay="allow"\n' +'          autoplay\n' +'        >\n' +`          <source src="${this.formData.path}" type="application/x-mpegURL">\n` +'        </video>'const path = this.formData.paththis.$nextTick(() => {this.formData.copyVideo = this.$videojs('copyVideoPreview', {bigPlayButton: true,textTrackDisplay: false,posterImage: false,errorDisplay: true,controlBar: true,html5: {hls: {overrideNative: false},nativeVideoTracks: true,nativeAudioTracks: true,nativeTextTracks: true}}, function () {this.src({src: path,type: 'application/x-mpegURL'})this.play()})// 监控预加载视频状态,状态不等于0创建预览domthis.$nextTick(() => {this.formData.time = setInterval(() => {const myVid = this.formData.copyVideo.readyState()console.log('myVid', myVid)if (myVid !== 0) {clearInterval(this.formData.time)this.reloadVideoDom()}}, 1000)})})},/*** 创建当前需要预览的视频dom*/reloadVideoDom () {this.clearVideoDom()const videoBox = document.getElementById('videoBox')videoBox.innerHTML = '<video\n' +'          id="VideoPreview"\n' +'          class="video-js vjs-default-skin vjs-big-play-centered"\n' +'          controls\n' +'          preload="metadata"\n' +'          style=\'width: 100%;height: 100%;\'\n' +'          x5-video-player-fullscreen="true"\n' +'          webkit-playsinline\n' +'          x5-playsinline\n' +'          playsinline\n' +'          x-webkit-airplay="allow"\n' +'          autoplay\n' +'        >\n' +`          <source src="${this.formData.path}" type="application/x-mpegURL">\n` +'        </video>'const path = this.formData.paththis.$nextTick(() => {this.formData.video = this.$videojs('VideoPreview', {bigPlayButton: true,textTrackDisplay: false,posterImage: false,errorDisplay: true,controlBar: true,html5: {hls: {overrideNative: false},nativeVideoTracks: true,nativeAudioTracks: true,nativeTextTracks: true}}, function () {this.src({src: path,type: 'application/x-mpegURL'})this.play()})})},/*** 清空当前预览dom*/clearVideoDom () {if (this.formData.video) {this.formData.video.dispose()}this.formData.video = nullconst videoBox = document.getElementById('videoBox')const VideoPreview = document.getElementById('VideoPreview')if (VideoPreview) {videoBox.removeChild(VideoPreview)}}

问题到这里就解决了

http://www.yayakq.cn/news/329194/

相关文章:

  • 做外贸无网站如何做网站官方认证怎么做
  • 门户网站的基本功能网站总体规划
  • mysql 收费 网站建设网站建设需要懂什么
  • 做金融网站需要什么营业执照手机用什么软件做网站
  • 网页qq邮箱怎么发文件给别的邮箱百度seo排名主要看啥
  • 扬州网站建设myvodo赚钱黑渠道入口
  • 株洲做网站 省心磐石网络公司宣传册设计模板
  • 北京住房和建设部网站首页网站建设先进个人自荐
  • 山东食品行业网站开发移动宽带续费网上营业厅
  • 网站可以做固定资产吗品牌营销目标
  • 做网站订金为什么需要交那么多域名不变 网站改版
  • 大鼠引物在线设计网站html5手机移动app网站制作教程
  • 在县城做商城网站wordpress 插件 教程
  • 各网站特点淘宝的网站建设的目标
  • 网站seo自己怎么做企业网站设计的基本内容包括哪些
  • 一重大连工程建设有限公司官方网站企业网站的特征
  • 公司网站建设哪里好网络品牌推广方法
  • 网站建设实习招聘口腔医院网站建设
  • 成都网站建设 致尚重庆seo推广方案
  • 一站式做网站企业网站建设维护工作总结
  • 百度怎样注册免费的网站网站推广朋友圈文案
  • 小企业如何建网站免费的个人网站空间
  • 宁波网站建设详细策划为什么要做企业网站
  • 低价网站建设行业现状一流的医疗网站建设
  • 宁波象山网站建设网站服务器和网站备案
  • 网站做内容网站建设策划方案书论文
  • 做网站怎么提取视频无广告公司网站开发比选
  • PHP套模板做网站网页制作与设计教程
  • 网站管理助手ftp连接不上wordpress得到文章的附件
  • 哪个网站可以做立体字的模板网站源码分享平台