簡體   English   中英

HTML5 視頻播放器防止搜索

[英]HTML5 video player prevent seeking

我正在創建一系列視頻教程,並希望防止用戶向前搜索和跳過部分。 我將使用用於桌面和 iPad 瀏覽器的 HTML5 視頻播放器。 理想情況下,我希望它也能在 iPhone 上運行,但我意識到您無法控制手機上的視頻,因為它使用 iPhone 視頻播放器。

如何防止用戶在 HTML5 視頻播放器上向前搜索?

Video.js 的另一個示例:

videojs('example_video_1').ready(function(){
  var player = this;
  var previousTime = 0;
  var currentTime = 0;
  var seekStart = null;

  player.on('timeupdate', function(){
    previousTime = currentTime;
    currentTime = player.currentTime();
  });

  player.on('seeking', function(){
    if(seekStart === null) {
      seekStart = previousTime;
    }
  });

  player.on('seeked', function() {
    if(currentTime > seekStart) {
      player.currentTime(seekStart);
    }
    seekStart = null;
  });
});

我只是想阻止向前尋求。 我的系統中有更多代碼可以讓他們暫停並稍后返回。 它記錄當前位置並在加載時設置視頻位置。

我正在使用 video.js。 我嘗試使用 timechange 事件,但它在查找之前觸發。 因此,我使用間隔來每秒抓取當前位置。 如果搜索位置大於當前位置,則將其設置回原處。 效果很好。

var player = null;
var curpos = 0;
videojs('player').ready(function(){
  player = this;
});

player.on('seeking', function () {
  var ct = player.currentTime();
if(ct > curpos) {
  player.currentTime(curpos);
}
});

function getpos() {
  curpos = player.currentTime();
}
onesecond = setInterval(getpos, 1000);

如果你真的想做這種令人驚訝的用戶敵對的事情,那么你可以使用控件屬性。 您將必須實現您希望允許使用 JS 的任何控件。

當然,用戶總是可以通過查看 > source來獲取視頻的 URI 並下載它。

感謝您的回答瑞克。

我注意到用戶可以拖動並按住搜索器,這允許他們繼續,所以我添加了不尋求 getPos 函數的地方。HTML 5 和 jQuery。

 var video = document.getElementsByTagName('video')[0]; function allowMove() { $('input[id$="btnNext"]').removeAttr('disabled'); $('input[id$="videoFlag"]').val("1"); } function getpos() { if (!(video.seeking)) { curpos = video.currentTime; } console.log(curpos) } onesecond = setInterval('getpos()', 1000); function setPos() { var ct = video.currentTime; if (ct > curpos) { video.currentTime = curpos; } }

我同意@Bart Kiers 的觀​​點,這不是一個好主意,但如果您必須這樣做,我可以想到一種方法:隱藏控件並提供您自己的播放按鈕,使用 JavaScript 啟動視頻。

為什么不這樣?

var video = document.getElementById("myVideo");
var counter = 0;

video.on('timeupdate', function() {
  if (video[0].paused == false) {
    counter = video[0].currentTime;
  }
}

video.on('seeking', function(e) {
  if ( parseInt(counter, 10) != parseInt(video[0].currentTime, 10) ) {
    video[0].currentTime = counter;
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM