一、第一部分html页面的准备

{{item.title}}
{{item.introduction}}

二、数据说明部分

data() {

let u = navigator.userAgent;

return {

showSlide: 0,

allLoaded: false, //数据是否全部加载完

page: 1,

isLoading: true,

option: {},

current: 0,

videoList: [],

isVideoShow: true,

playOrPause: true,

video: null,

iconPlayShow: true,

isAndroid: u.indexOf("Android") > -1 || u.indexOf("Adr") > -1, // android终端

isiOS: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端

tabIndex: 0,

showshare: false,

videoInterval: null, //检查视频是否加载好

videoLazy: false, //视频懒加载

isopacity: 1,

shareVideo: null, //点击分享的时候需要暂停的视频

dataLoaded: false

};

},

三、事件

//滑动改变播放的视频

onChange(index) {

//如果已经播放第一个了就清除循环

if (this.videoInterval) { clearInterval(this.videoInterval); }

this.iconPlayShow = false;

//改变的时候 暂停当前播放的视频

let video = document.querySelectorAll("video")[this.current];

video.pause();

//判断案例加载到哪里了

if (index + 1 == this.videoList.length) {

this.page++; //当视频切换到列表的最后一个的时候请求加载下一页

this.getData(index);

} else {

this.changeload(index);

}

},

//播放视频

changeload(index) {

this.playOrPause = false;

this.current = index;

if (this.isiOS) {

//页面中是否存在视频懒加载

if (this.videoLazy) {

this.videoLazy = false;

this.isopacity = 1;

} else {

this.videoLazy = true;

this.isopacity = 0;

}

//ios切换直接自动播放下一个

let vid = document.querySelectorAll("video")[this.current];

console.log("进入changeload", vid.readyState, vid.networkState);

//检测视频是否加载好了

if (vid.readyState == 4) {

this.isopacity = 1;

this.videoLazy = false;

vid.play();

console.log(this.videoLazy, "懒加载");

} else {

this.videoInterval = setInterval(() => {

this.myFunction(vid);

}, 300);

}

this.playOrPause = true;

} else {

if (this.videoLazy) {

this.videoLazy = false;

this.isopacity = 1;

}

//安卓播放时重置显示封面。图标等

this.isVideoShow = true;

this.iconPlayShow = true;

}

},

//检查视频懒加载的图片是否加载好

imageLoaded() {

this.iconPlayShow = true;

},

//视频播放

playvideo() {

let video = document.querySelectorAll("video")[this.current];

this.isVideoShow = false;

this.iconPlayShow = false;

//检测视频是否加载好了

if (video.readyState == 4 || video.networkState == 1) {

video.play();

this.isopacity = 1;

} else {

this.videoInterval = setInterval(() => {

this.myFunction(video);

}, 300);

}

window.onresize = function() {

video.style.width = window.innerWidth + "px";

video.style.height = window.innerHeight + "px";

};

},

pauseVideo() {

clearInterval(this.videoInterval);

//暂停\播放

let video = document.querySelectorAll("video")[this.current];

if (this.playOrPause) {

video.pause();

this.iconPlayShow = true;

this.videoLazy = false;

} else {

this.videoInterval = setInterval(() => {

this.myFunction(video);

}, 300);

this.iconPlayShow = false;

}

this.playOrPause = !this.playOrPause;

},

onPlayerEnded(player) {

//视频结束

this.isVideoShow = true;

this.current += this.current;

},

myFunction(video) {

let nws = video.networkState;

if (video.readyState == 4 || nws == 1) {

video.play();

if (video.readyState == 4) {

this.iconPlayShow = false; //暂停按钮

this.videoLazy = false; //懒加载

this.isopacity = 1; //视频是否显示

this.isVideoShow = false; //封面图片

clearInterval(this.videoInterval);

}

} else {

this.videoLazy = true;

this.isopacity = 0;

}

}

deactivated() {

this.showSlide = this.current;

console.log("清除循环", "退出");

clearInterval(this.videoInterval);

}

仿抖音视频自动播放html,vue 仿抖音视频播放切换相关推荐

  1. 仿抖音视频自动播放html,vue 仿抖音视频列表(兼容微信内置X5浏览器)

    制作 仿抖音视频列表遇到很多坑,特别是安卓微信内置浏览器,让人脑壳疼,核心代码不多 便于理解 组件用到了vant 中的swiper滑动组件 h5 原生 video 属性 webkit-playsinl ...

  2. iOS 微信 音视频自动播放 原生接口WeixinJSBridge API(一些整理 小技巧)

    原文链接1:https://www.w3ctech.com/topic/1165 原文链接2:https://www.cnblogs.com/jasonduan/p/5635048.html 做一下整 ...

  3. Android WebView加载H5音视频自动播放、关闭Activity停止播放

    在Android加载H5,实现H5中的音视频自动播放  在Activity中添加代码: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELL ...

  4. 视频自动播放代码(优酷、搜狐、酷6、土豆等)

    一.优酷.搜狐视频自动播放代码(更换地址即可) 如下: width=700 height=550 type=application/x-shockwave-flash wmode="opaq ...

  5. 各大网站视频自动播放代码(优酷、搜狐、酷6、土豆等)

    注:可以复制或涂蓝后同时按左下角CTRL+C即可复制.   如何将Flash素材保存到电脑硬盘?   http://lxc66188.blog.163.com/blog/static/91764986 ...

  6. js 自动播放音频文件,报警提示音等

    js 自动播放音频文件,报警提示音等 谷歌浏览器的音频,默认是不能在页面载入时直接自动播放的. 至少需要用户点击一下页面,才可以播放音频,这个策略的目的是保证用户的体验感,如果每个页面都能在用户未接触 ...

  7. uniapp ----小程序上下滑动页面,视频自动播放(完整代码)

    uniapp ----小程序上下滑动页面,视频自动播放(完整代码) <template><view class="box"><f-navbar tit ...

  8. Qt仿腾讯视频简易播放器 【源码开源】

    Qt仿腾讯视频简易播放器1.0.0.0 开源 文章目录 Qt仿腾讯视频简易播放器1.0.0.0 开源 (一).控件介绍 (二).效果图 工程代码 Qt交流群 结尾 (一).控件介绍 Qt仿腾讯视频简易 ...

  9. ffmpeg播放器 android,Android使用FFmpeg(六)--ffmpeg实现音视频同步播放

    关于 准备工作 正文 依旧依照流程图来逐步实现同步播放: 从流程图可以看出,实现同步播放需要三个线程,一个开启解码的装置得到packet线程,然后分别是播放音频和视频的线程.这篇简书是以音频播放为基准 ...

最新文章

  1. asp.net 用户控件
  2. ubuntu将mysql、nginx添加到环境变量中
  3. linux权限补充:rwt rwT rws rwS 特殊权限
  4. 阅读分析下列html,阅读下列说明和HTML文本,分析其中嵌入的JavaScdpt脚本, [说明]..._考试资料网...
  5. C语言指针这些使用技巧值得收藏!
  6. spring mvc学习(1):spring jar包
  7. std::unique_ptr<T>与boost::scoped_ptr<T>的特殊性
  8. python实训总结万能版3000字_实训总结万能版2000字范文五篇
  9. Android 系统(196)---Android 属性动画
  10. 西安高铁“洋班组” 助力新春运
  11. 文字处理技术:有哪些难点?
  12. Linux之镜像源篇
  13. 单位圆盘的全纯自同构群Aut B(0,1)
  14. 神经网络对灰度图像的处理转为对彩色RGB图像的处理
  15. 关于校园流浪猫狗的调查报告 新生研讨课校内调查
  16. 如何规避适配风险?以《乱世王者》为例,探秘手游兼容性测试之路
  17. 基于django+mysql的教师教学质量评价系统源代码,教学评价系统源码
  18. Android逆向学习之如何在抖音发链接
  19. 服务器性能测试工具及实战,性能测试实战--《软件测试52讲》
  20. C++ RALL机制详解

热门文章

  1. Convert Sorted Array to Binary Search Tree With Minimal Height
  2. Python(set/list/dict/tuple)
  3. Deepin 2015 安装惠普打印机驱动
  4. poj 1125 Stockbroker Grapevine(Folyd)
  5. 2014.12.1---Thema:EchartsD3
  6. css 相对单位rem详解
  7. 如何weak link一个framework (高版本兼容低版本)
  8. c替代if else_答应我,别再if/else走天下了可以吗
  9. linux 驱动读写文件,Linux下读写寄存器
  10. mysql通过日志恢复数据_mysql通过binlog日志来恢复数据