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

怎么做网站页面代码搜索做门户网站需要准备什么

怎么做网站页面代码搜索,做门户网站需要准备什么,山东天成水利建设 网站,教务管理系统论文Flv.js 是 HTML5 Flash 视频#xff08;FLV#xff09;播放器#xff0c;纯原生 JavaScript 开发#xff0c;没有用到 Flash。由 bilibili 网站开源。它的工作原理是将 FLV 文件流转码复用成 ISO BMFF#xff08;MP4 碎片#xff09;片段#xff0c;然后通过 Media Sour…Flv.js 是 HTML5 Flash 视频FLV播放器纯原生 JavaScript 开发没有用到 Flash。由 bilibili 网站开源。它的工作原理是将 FLV 文件流转码复用成 ISO BMFFMP4 碎片片段然后通过 Media Source Extensions 将 MP4 片段喂进浏览器。 使用方法 templatediv classvideo :style{ height: voidHeight }video refvideoElement muted controls autoplay controlslistnodownload noplaybackrate noremoteplayback disablePictureInPicturetrue v-if!imgError/videodiv classimg_error v-ifimgErrorp无法连接相关设备/p/div/div /templatescript import flvjs from flv.js; export default {name: assemblyFlv,props: [url, height, destroy,playon], // 视频流路径播放器高度是否销毁播放器data() {return {flvPlayer: ,imgError: false,voidHeight: ,playOn:true};},mounted() {// 判断是否传入高度如果没有高度100%this.height ? (this.voidHeight this.height) : (this.voidHeight 100%);// 页面加载完成后初始化this.$nextTick(() {this.init(this.url);});},methods: {// 初始化init(source) {if (flvjs.isSupported()) {this.flvPlayer flvjs.createPlayer({type: flv,url: source,isLive: true,},{enableWorker: false, //不启用分离线程enableStashBuffer: false, //关闭IO隐藏缓冲区reuseRedirectedURL: true, //重用301/302重定向url用于随后的请求如查找、重新连接等。autoCleanupSourceBuffer: true, //自动清除缓存});var videoElement this.$refs.videoElement;this.flvPlayer.attachMediaElement(this.$refs.videoElement);if (this.url ! this.url ! null) {this.flvPlayer.load();//this.flvPlayer.play();setTimeout(() { this.flvPlayer.play(); }, 100);// 加载完成this.flvPlayer.on(flvjs.Events.LOADING_COMPLETE, () {this.imgError false;});// 加载失败this.flvPlayer.on(flvjs.Events.ERROR,() {if (this.flvPlayer) {this.reloadVideo(this.flvPlayer);}else{this.imgError true;}},(error) {console.log(error);});this.flvPlayer.on(flvjs.Events.STATISTICS_INFO, (res) {if(this.playon ! false){if (this.lastDecodedFrame 0) {this.lastDecodedFrame res.decodedFrames;console.log(this.lastDecodedFrame)return;}if (this.lastDecodedFrame ! res.decodedFrames) {this.lastDecodedFrame res.decodedFrames;} else {this.lastDecodedFrame 0;console.log(卡住重连)if (this.flvPlayer) {this.reloadVideo(this.flvPlayer);console.log(卡住重连完成)}}}});videoElement.addEventListener(progress, () {if(videoElement.buffered.length ! 0){let end videoElement.buffered.end(0); //获取当前buffered值(缓冲区末尾)let delta end - videoElement.currentTime; //获取buffered与当前播放位置的差值// 延迟过大通过跳帧的方式更新视频if (delta 10 || delta 0) {this.flvPlayer.currentTime this.flvPlayer.buffered.end(0) - 1;console.log(跳帧)return;}// 追帧if (delta 1) {videoElement.playbackRate 1.1;console.log(追帧)} else {videoElement.playbackRate 1;console.log(正常)}}});// 点击播放按钮后更新视频videoElement.addEventListener(play, () {if(videoElement.buffered.length 0){let end videoElement.buffered.end(0) - 1;this.flvPlayer.currentTime end;console.log(播放最新)}});// 网页重新激活后更新视频window.onfocus () {if(videoElement.buffered.length 0){let end1 videoElement.buffered.end(0) - 1;this.flvPlayer.currentTime end1;console.log(页面切换)}};}} else {this.imgError true;}},//断线重连reloadVideo(flvPlayer) {this.detachMediaElement();this.init(this.url);console.log(断线重连)},// 销毁detachMediaElement() {this.flvPlayer.pause();this.flvPlayer.unload();this.flvPlayer.detachMediaElement();this.flvPlayer.destroy();this.flvPlayer ;},},watch: {url() {this.imgError false;// 切换流之前判断之前的流是否销毁this.flvPlayer ? : this.detachMediaElement();// 初始化this.init(this.url);},destroy() {// 传入开关值if (this.destroy) {this.init(this.url);} else {this.flvPlayer ? : this.detachMediaElement();}},playon() {this.reloadVideo(this.flvPlayer);}},beforeDestroy() {this.detachMediaElement();}, }; /scriptstyle scoped .video {position: relative;height: 100%; } .video video {width: 100%;height: 100%;object-fit: fill; } .video video::-webkit-media-controls-play-button{display: none; } .video video::-webkit-media-controls-toggle-closed-captions-button {display: none; } .video video::-webkit-media-controls-timeline {display: none; } .video video::-webkit-media-controls-current-time-display {display: none; } .video video::-webkit-media-controls-time-remaining-display {display: none; } .img_error {position: absolute;top: 30%;left: 50%;margin-left: -120px;text-align: center; } .img_error img {margin-bottom: 1em; } .img_error p {color: #00fdff;font-weight: bold;font-size: 1.2em; } /style 封装 子组件封装 templatediv classvideo-containervideo refvideoElement classcenteredVideo controls autoplay muted/video /div /templatescript import flvjs from flv.js; //引入flv export default {props: {url : String,},data() {return {// src: [http://172.21.1.111/live?port1935appmyappstreamstreamname],};},mounted() {this.flv_load(this.url);},methods: {flv_load(url) {if (flvjs.isSupported()) {let videoElement this.$refs.videoElement;this.flvPlayer flvjs.createPlayer({type: flv, //媒体类型url: url, //flv格式媒体URLisLive: true, //数据源是否为直播流hasAudio: false, //数据源是否包含有音频hasVideo: true, //数据源是否包含有视频enableStashBuffer: false, //是否启用缓存区},{enableWorker: false, // 是否启用分离的线程进行转换enableStashBuffer: false, //关闭IO隐藏缓冲区autoCleanupSourceBuffer: true, //自动清除缓存});this.flvPlayer.attachMediaElement(videoElement); //将播放实例注册到节点this.flvPlayer.load(); //加载数据流this.flvPlayer.play(); //播放数据流}},}, }; /scriptstyle scoped /* .video-container {display: inline-block;margin-right: 10px;width: 32%;height: 45%; } */ .centeredVideo {width: 100%; } /style 父组件调用 templateel-card classbox-carddiv classflvbox v-for(item,index) in src :keyindex!-- VideoFlv urlhttp://172.21.1.111/live?port1935appmyappstreamstreamname / --VideoFlv :urlitem //div/el-card /templatescript import VideoFlv from ./VideoFlv.vue; export default {components:{VideoFlv},data() {return {src: [https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv,https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv,https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv,https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv,http://172.21.1.111/live?port1935appmyappstreamstreamname,https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv,],};}, }; /scriptstyle scoped .flvbox {display: inline-block;margin-right: 10px;width: 32%; } /style 因为视频需要实时的 后边发现上边写法暂停之后和切换页面之后 会有延迟 所以开发让新加个刷新按钮 也已满足  然后这个api的写法我尝试很多 追帧啊 更新视频啊 都没生效  父组件重新传值 因为值没有变化 所以也没有重新渲染  所以用到了key 属性 vue每次渲染的时候会去拿这个key 值做对比如果这一次的key 值和上一次的key值是不一样的才会重新渲染dom 元素否则保持上一次的元素状态。所以我用了一个时间戳方法
http://www.yutouwan.com/news/238281/

相关文章:

  • 网站建设建设公司用vs做购物网站下载
  • 前端个人网站怎么做今天秦皇岛最新通知公告
  • 辽宁省建设工程质量监督总站网站珠海在线网站建设
  • 山西省建设监理协会官方网站哈尔滨网站建设网络公司
  • c2c电子商务网站需具备哪些业务功能必要是什么网站
  • 随州网站设计开发方案h5响应式网站建设价格
  • 天津网站优化首页微信公众号平台官网
  • php做网站页面建设公司网站大概需要多少钱
  • 长春网站建设q479185700強wordpress 用户密码的加密算法
  • 网站建设模板图片wordpress安装插件502
  • 网站流量的转换率一般是多少温州自助建站公司
  • 做股权众筹的网站零基础建设网站视频
  • 网上做中考题的网站深圳seo爱好者
  • 如何快速更新网站快照做lol数据的网站有哪些
  • 免费制作网站和网页wordpress转换语言
  • 如何提高网站的收录量广州网站建设年底促销
  • 无水印视频素材下载免费网站濮阳网站设计
  • 做古风文字头像的网站wordpress多語言插件
  • 建立一个公司的网站吗怎么创建免费网站
  • 网站建设所需美工做网站设计收入
  • 网站管理系统推荐策划书word模板
  • 门户网站 建设商 排名怎么做刷业务网站
  • 什么是灰色网站电子工程专辑
  • 要怎样夸一个网站做的好看建立网络平台需要什么
  • 建行生活网页版登录入口塘沽网站优化
  • 网站开发公司人员配备电子商城网站开发项目描述
  • 单页网站排名没有网站制作高手
  • 一站式网站建设架构网站设计作品案例讲解
  • 包头 网站制作wordpress文章无法使用
  • 企飞互联网站建设网络公司wordpress运行时间