首页 > 其他分享 >js如何操作video标签

js如何操作video标签

时间:2023-06-21 11:11:21浏览次数:28  
标签:document 设置 标签 js video querySelector 播放

一.简介

在做web ui自动化时,遇到操作视频的时候有时比较让人头疼,定位时会发现只有一个<video>标签,用selenium来实现的话比较麻烦,使用js后我们只需定位到video标签,然后通过js 中处理video的相关属性和方法就可实现,我们继续往下看。

二.实例用法

1.获取视频的总时长(duration)

# document.querySelector('video').duration  # js语法
js = "return document.querySelector('video').duration"
print(driver.execute_script(js))

2.获取当前播放的时长(currentTime)

js="return document.querySelector('video').currentTime"

currentTime还可以指定当前播放的时长

复制代码
# 控制进度
time_list = [5, 30, 40, 50, 60, 70, 80, 90, 100]  # 秒数
for i in time_list:
    js = "document.querySelector('video').currentTime="+str(i)
    driver.execute_script(js)
    time.sleep(2)
复制代码

3.判断当前视频是播放还是暂停状态(paused)

# 判断视频处于暂停还是播放  true暂停,false播放
js = "return document.querySelector('video').paused"
driver.execute_script(js)

4.暂停:pause(),播放:play()视频

复制代码
# 暂停
js = "document.querySelector('video').pause()"
driver.execute_script(js)
# 播放
js = "document.querySelector('video').play()"
driver.execute_script(js)
复制代码

5.设置播放倍数(playbackRate)

# 设置播放倍数
js = "document.querySelector('video').playbackRate=10"  # 设置10倍数播放
driver.execute_script(js)

当你在web端刷课/刷剧时,苦于页面设置进度最快也就三倍速,此时playbackRate可以帮助你解决这个烦恼

6.设置清晰度(src)

# 设置清晰度,通过设置播放源来设置
js = "document.querySelector('video').src='xxxx'"

设置清晰度是通过设置video标签中src属性来实现的,因此需要先知道src播放源

7.设置视频播放音量大小(volume)

# js = "retrun document.querySelector('video').volume"  # 获取当前音量大小
js_su = "document.querySelector('video').volume=1"  # 设置当前音量为最大
driver.execute_script(js_su)

volume的值:0表示音量最小,1表示最大,0.x表示设置音量大小为x0%(x为1-9数字)

若当前视频是静音状态,此时设置volume是没有效果的,因为执行volume 属性的取值范围为 0(静音)到 1(最大音量),不包括 -1(取消静音)。我们可以通过设置muted来取消静音状态后再去设置音量大小。

js = "document.querySelector('video').muted=false"  # 解除禁,会暂停视频

muted为false是表示解除静音,此时视频会暂停。为true是开始静音。

8.设置循环播放(loop)

# loop是否循环播放,true设置循环,false不循环
# js = "return document.querySelector('video').loop"  # 判断当前是否处于循环状态
js = "document.querySelector('video').loop=true"
driver.execute_script(js)

三.其它用法

js官网参考:https://developer.mozilla.org/en-US/docs/Learn/Performance/video

poster:视频封面

preload:预加载

autoplay:自动播放

controls:浏览器自带的控制条

width:视频宽度

height:视频高度

四.遗留问题

本人学习后发现有两个问题暂没解决,知道的小伙伴可留言告知

1.全屏/退出全屏(chatgpt说的是requestFullscreen()可执行全屏,但我试了没有反应,本人谷歌浏览器)

2.获取视频弹幕信息

 

 

出处:https://www.cnblogs.com/lihongtaoya/p/17494369.html

标签:document,设置,标签,js,video,querySelector,播放
From: https://www.cnblogs.com/mq0036/p/17495769.html

相关文章

  • 前端JS zip打包文件并下载,图片url转base64
    使用jszip这个项目实现的:https://github.com/Stuk/jszipFileSaver.js项目地址是:https://github.com/eligrey/FileSaver.js/<scriptsrc="./FileSaver.min.js"></script><scriptsrc="./jszip.min.js"></script>//初始化一个zip打包对象varzi......
  • js 数组 map方法
    一、map的第一种使用场景需求:我们想得到对象数组中指定的两组或多组key和value值。如下图:下面是一段JSON数据结构{"code":0,"msg":null,"data":[{"processDetailId":1381753495314433,"processId":138175349......
  • umijs
    企业级前端框架UMI3官网开篇词开篇词|react官方架构单薄,同事们都在用UMIUmi是蚂蚁金服的底层前端框架,是可扩展的企业级前端应用框架,内置了路由、构建、部署、测试,包含组件打包、文档工具、请求库、hooks库、数据流等,通过框架的方式简化React开发知识结构图UMI......
  • 单标签下的日间/黑夜模式切换按钮效果
    前不久,在网上看到这么一张非常有趣的图:想必很多同学都看到这张图,是一个开发小哥被一个日间/黑夜模式切换按钮效果逼疯的视频。其最终效果大致如下:原完整代码在这里:Night&&DayToggle☀️/......
  • java-http携带json参数访问接口
    一个接收map的接口@RequestMapping("kkw")publicStringkkw(@RequestBodyMap<String,Object>map){if(map!=null){System.out.println(JSONObject.toJSONString(map));;}return"success";}pac......
  • python: Reading and Writing JSON to a File
     #importjsonjsondata={'sqlserver':[{"server":"DESKTOP-NQK85G5\GEOVIN2008","useid":"sa","password":"......
  • 删除标签
    publicfinalvoiddeleteBookmark(Cursorcur,intpos){//fetchinginfo((Cursor)cur).moveToPosition(pos);finalStringbookmark_id=((Cursor)cur).getString(((Cursor)cur).getColumnIndex(Browser.BookmarkColumns._ID));finalStringboo......
  • webView中长按后取消菜单js实现
    <!DOCTYPEhtml><html><head><script>functionabsorbEvent_(event){vare=event||window.event;e.preventDefault&&e.preventDefault();e.stopPropagation&&e.stopPropagation();......
  • NodeJS系列(3)- ECMAScript 6 (ES6) 语法(一)
    ECMAScript6(ES6)是最新的JavaScript语言的标准化规范,它的目标是使JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。本文在“NodeJS系列(2)-在NPM项目里使用ECMAScript6(ES6)规范”的npmdemo的基础上,介绍并演示let、const、Symbol等ES6语法......
  • 使用python对AWS-CloudTrail-Json-日志文件key字段名称的提取
    关于AWS CloudTrail-在Console界面,默认只能看到最近90天的数据如果需要追踪更早的操作记录,得需要配置CloudTrail日志输出保存到s3在s3上不同的region位于不同的目录,最后会将某一天的日志,存放到那一天的目录/文件夹中,目录路径格式(部分)如:aws-account-xxx/CloudTrail/cn-nort......