欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nodejs中使用puppeteer控制瀏覽器中視頻播放功能

 更新時間:2019年08月26日 17:20:44   作者:大漠胡蘿卜  
本項目主要功能為在瀏覽器中自動播放視頻,并且實現(xiàn)音量控制,快進(jìn)快退,全屏控制,播放暫停控制等功能。對Nodejs中使用puppeteer控制瀏覽器中視頻播放功能感興趣的朋友跟隨小編一起看看吧

本項目主要功能為在瀏覽器中自動播放視頻,并且實現(xiàn)音量控制,快進(jìn)快退,全屏控制,播放暫??刂频裙δ?。

倉庫地址:  github.com/hapiman/chr…

安裝靜態(tài)服務(wù)器

如果電腦上存在nodejs的環(huán)境,可以直接安裝 anywhere 來訪問 index.html 頁面。 進(jìn)入項目根目錄,執(zhí)行命令: anywhere ,然后瀏覽器會自動打開 http://localhost:8000 頁面。

使用puppeteer自動化執(zhí)行命令

通過在 nodejs 調(diào)用前端頁面的方法,然后能夠Socket實現(xiàn)遠(yuǎn)程控制瀏覽器的視頻播放。

具體功能實現(xiàn)

var _volumeNum = 1 // 音量值
 var _speedNum = 1 // 速度值
 var videoSrc = 'demo02.mp4' // 切換資源
 window.onload = function () {
  var myVideo = document.getElementById('myVideo')
  var scSource = document.getElementById('sc')
  var myVideoBody = { pause: true }
  // 播放完成指令
  myVideo.addEventListener('ended', function () {
   scSource.src = videoSrc;
   myVideo.load()
   myVideo.play()
  })
  // 初始化
  start()
 }
 // 獲取video
 function getVideo() {
  var myVideo = document.getElementById('myVideo')
  return myVideo
 }
 // 快進(jìn)
 function vforward(params) {
  if (_speedNum >= 2) return
  _speedNum = accAdd(_speedNum, 0.1)
  console.log('vforward _speedNum: ', _speedNum)
  getVideo().playbackRate = _speedNum
 }
 // 快退
 function vbackward() {
  if (_speedNum <= 0.5) return
  var myVideo = getVideo()
  _speedNum = accSub(_speedNum, 0.1)
  console.log('vbackward _speedNum: ', _speedNum)
  getVideo().playbackRate = _speedNum
 }
 // 頁面加載之后執(zhí)行命令
 function start() {
  var myVideo = getVideo()
  myVideo.volume = 1
  myVideo.playbackRate = 1
 }
 // 設(shè)置靜音
 function setMuted() {
  getVideo().muted = true
 }
 // 設(shè)置非靜音
 function setNotMuted() {
  getVideo().muted = false
 }
 // 播放
 function vplay() {
  console.log('vplay =>')
  getVideo().play();
 }
 // 暫停
 function vstop() {
  getVideo().pause();
 }
 // 重播
 function vrestart() {
  getVideo().currentTime = 0
  getVideo().play()
 }
 // 取消全屏
 function cancelFull() {
  screenfull.exit()
 }
 // 打開全屏
 function openFull() {
  getVideo().webkitRequestFullscreen()
 }
 // 音量 --
 function reduceVolume() {
  console.log('reduceVolume:: current volume: ', myVideo.volume) // 當(dāng)前音量
  getVideo().muted = false
  if (_volumeNum <= 0) return
  _volumeNum = accSub(_volumeNum, 0.1)
  getVideo().volume = _volumeNum
 }
 // 音量 ++
 function addVolume() {
  console.log('addVolume:: current volume: ', myVideo.volume)  // 當(dāng)前音量
  getVideo().muted = false
  if (_volumeNum >= 1) return
  _volumeNum = accAdd(_volumeNum, 0.1)
  getVideo().volume = _volumeNum
 }

遇到的問題

關(guān)于人工觸發(fā)

打開網(wǎng)頁的時候,autoplay可以自動播放,但是是靜音模式,從76版本開始,chrome瀏覽器安全機(jī)制不再允許有聲自動播放視頻。

同樣的,處于安全考慮,瀏覽器也不能夠在沒有用戶操作的情況,通過接口設(shè)置為全屏。

當(dāng)前項目引入 puppeteer 目的就是為了模擬人工觸發(fā)頁面的情況。

總結(jié)

以上所述是小編給大家介紹的Nodejs中使用puppeteer控制瀏覽器中視頻播放功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Node.js使用supervisor進(jìn)行開發(fā)中調(diào)試的方法

    Node.js使用supervisor進(jìn)行開發(fā)中調(diào)試的方法

    今天小編就為大家分享一篇關(guān)于Node.js使用supervisor進(jìn)行開發(fā)中調(diào)試的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • NodeJS學(xué)習(xí)筆記之MongoDB模塊

    NodeJS學(xué)習(xí)筆記之MongoDB模塊

    nodejs是個強(qiáng)大的平臺,有基本功能,而且可以掛很多模塊。我們現(xiàn)在需要和mongodb連接的驅(qū)動,就類似比如mysql的java驅(qū)動一樣。nodejs有好幾個mongodb的第三方驅(qū)動。和jdbc不一樣,沒有標(biāo)準(zhǔn)。所以需要到驅(qū)動的網(wǎng)站上去了解學(xué)習(xí)怎么使用它訪問mongodb。
    2015-01-01
  • 三行命令切換Node.js版本的流程步驟

    三行命令切換Node.js版本的流程步驟

    如何在Windows上更新Node.js版本呢?有沒有那種不需要重新安裝軟件再修改配置文件和環(huán)境變量的方法?你是否還在為可能要重新安裝Node然后配置文件修改環(huán)境變量困擾?面就來介紹一下nvm更換node版本的步驟,需要的朋友可以參考下
    2024-01-01
  • HTTP JSON接口模擬工具Interfake快速入門教程

    HTTP JSON接口模擬工具Interfake快速入門教程

    這篇文章主要為大家介紹了HTTP JSON接口模擬工具Interfake快速入門教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • express框架實現(xiàn)基于Websocket建立的簡易聊天室

    express框架實現(xiàn)基于Websocket建立的簡易聊天室

    本篇文章主要介紹了express框架實現(xiàn)基于Websocket建立的簡易聊天室,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • node基于async/await對mysql進(jìn)行封裝

    node基于async/await對mysql進(jìn)行封裝

    這篇文章主要介紹了node基于async/await對mysql進(jìn)行封裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下
    2019-06-06
  • Node.js原生api搭建web服務(wù)器的方法步驟

    Node.js原生api搭建web服務(wù)器的方法步驟

    這篇文章主要介紹了Node.js原生api搭建web服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Zabbix添加Node.js監(jiān)控的方法

    Zabbix添加Node.js監(jiān)控的方法

    這篇文章主要介紹了Zabbix添加Node.js監(jiān)控的方法,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • 詳解node child_process模塊學(xué)習(xí)筆記

    詳解node child_process模塊學(xué)習(xí)筆記

    這篇文章主要介紹了詳解node child_process模塊學(xué)習(xí)筆記,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • npm?install安裝失敗常見問題的解決辦法小結(jié)

    npm?install安裝失敗常見問題的解決辦法小結(jié)

    有時候前端安裝npm install 安裝包總是安裝不上,下面這篇文章主要給大家介紹了關(guān)于npm?install安裝失敗常見問題的解決辦法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05

最新評論