仿抖音视频自动播放html,vue 仿抖音视频播放切换
一、第一部分html页面的准备
二、数据说明部分
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 仿抖音视频播放切换相关推荐
- 仿抖音视频自动播放html,vue 仿抖音视频列表(兼容微信内置X5浏览器)
制作 仿抖音视频列表遇到很多坑,特别是安卓微信内置浏览器,让人脑壳疼,核心代码不多 便于理解 组件用到了vant 中的swiper滑动组件 h5 原生 video 属性 webkit-playsinl ...
- iOS 微信 音视频自动播放 原生接口WeixinJSBridge API(一些整理 小技巧)
原文链接1:https://www.w3ctech.com/topic/1165 原文链接2:https://www.cnblogs.com/jasonduan/p/5635048.html 做一下整 ...
- Android WebView加载H5音视频自动播放、关闭Activity停止播放
在Android加载H5,实现H5中的音视频自动播放 在Activity中添加代码: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELL ...
- 视频自动播放代码(优酷、搜狐、酷6、土豆等)
一.优酷.搜狐视频自动播放代码(更换地址即可) 如下: width=700 height=550 type=application/x-shockwave-flash wmode="opaq ...
- 各大网站视频自动播放代码(优酷、搜狐、酷6、土豆等)
注:可以复制或涂蓝后同时按左下角CTRL+C即可复制. 如何将Flash素材保存到电脑硬盘? http://lxc66188.blog.163.com/blog/static/91764986 ...
- js 自动播放音频文件,报警提示音等
js 自动播放音频文件,报警提示音等 谷歌浏览器的音频,默认是不能在页面载入时直接自动播放的. 至少需要用户点击一下页面,才可以播放音频,这个策略的目的是保证用户的体验感,如果每个页面都能在用户未接触 ...
- uniapp ----小程序上下滑动页面,视频自动播放(完整代码)
uniapp ----小程序上下滑动页面,视频自动播放(完整代码) <template><view class="box"><f-navbar tit ...
- Qt仿腾讯视频简易播放器 【源码开源】
Qt仿腾讯视频简易播放器1.0.0.0 开源 文章目录 Qt仿腾讯视频简易播放器1.0.0.0 开源 (一).控件介绍 (二).效果图 工程代码 Qt交流群 结尾 (一).控件介绍 Qt仿腾讯视频简易 ...
- ffmpeg播放器 android,Android使用FFmpeg(六)--ffmpeg实现音视频同步播放
关于 准备工作 正文 依旧依照流程图来逐步实现同步播放: 从流程图可以看出,实现同步播放需要三个线程,一个开启解码的装置得到packet线程,然后分别是播放音频和视频的线程.这篇简书是以音频播放为基准 ...
最新文章
- asp.net 用户控件
- ubuntu将mysql、nginx添加到环境变量中
- linux权限补充:rwt rwT rws rwS 特殊权限
- 阅读分析下列html,阅读下列说明和HTML文本,分析其中嵌入的JavaScdpt脚本, [说明]..._考试资料网...
- C语言指针这些使用技巧值得收藏!
- spring mvc学习(1):spring jar包
- std::unique_ptr<T>与boost::scoped_ptr<T>的特殊性
- python实训总结万能版3000字_实训总结万能版2000字范文五篇
- Android 系统(196)---Android 属性动画
- 西安高铁“洋班组” 助力新春运
- 文字处理技术:有哪些难点?
- Linux之镜像源篇
- 单位圆盘的全纯自同构群Aut B(0,1)
- 神经网络对灰度图像的处理转为对彩色RGB图像的处理
- 关于校园流浪猫狗的调查报告 新生研讨课校内调查
- 如何规避适配风险?以《乱世王者》为例,探秘手游兼容性测试之路
- 基于django+mysql的教师教学质量评价系统源代码,教学评价系统源码
- Android逆向学习之如何在抖音发链接
- 服务器性能测试工具及实战,性能测试实战--《软件测试52讲》
- C++ RALL机制详解
热门文章
- Convert Sorted Array to Binary Search Tree With Minimal Height
- Python(set/list/dict/tuple)
- Deepin 2015 安装惠普打印机驱动
- poj 1125 Stockbroker Grapevine(Folyd)
- 2014.12.1---Thema:EchartsD3
- css 相对单位rem详解
- 如何weak link一个framework (高版本兼容低版本)
- c替代if else_答应我,别再if/else走天下了可以吗
- linux 驱动读写文件,Linux下读写寄存器
- mysql通过日志恢复数据_mysql通过binlog日志来恢复数据