Настройка currentTime еще не работает одинаково во всех браузерах, документация по спецификации здесь:
https://www.w3.org/TR/2011/WD-html5-20110113/video.html#dom-media-currenttime
Но по сути это сводится к тому, что вы должныпочти всегда приостанавливайте видео, прежде чем пытаться установить его. EG:
let myVideo = document.getElementById("video");
myVideo.pause();
myVideo.currentTime = 0;
Однако лучший способ управления поиском в видео - это использовать свойство playRate.
Обычно,для этого параметра установлено значение 1,0, что означает нормальную скорость, однако, установив его на отрицательное значение, видео будет воспроизводиться в обратном направлении с этой скоростью, чем выше отрицательное значение, тем быстрее визуальная перемотка назад.
Как мудро,положительные числа больше 1,0 воспроизводят видео вперед с разной скоростью.
Однако я дам вам несколько дополнительных советов по воспроизведению видео в приложении, совместимом с HbbTV.
В общем,в приложениях HbbTV НЕ следует использовать тег видео HTML5, вместо этого следует использовать объект «Broadcast Video», полную информацию о котором можно найти в HbbTV.разделы спецификаций 6.2.2.6 и 9.7, которые вы можете загрузить с:
http://www.hbbtv.org/wp-content/uploads/2015/07/HbbTV-SPEC20-00023-001-HbbTV_2.0.1_specification_for_publication_clean.pdf
Если вам действительно нужно использовать стандартный тег HTML5 video, то раздел 9.6 спецификации скажет вам, что вам нужнознать, но знать, что это сложно и грязно.
Использование стандартного вещательного видеообъекта довольно просто, если честно, вам нужно определить OIPF-совместимый видеообъект в вашем HTML, что-то вроде следующего.
<object id="video" type="video/broadcast" ></object>
Тогда вы можете просто управлять им, используя следующие функции JS, которые я написал для использования в моих собственных приложениях.
function bindBroacastVideo() {
try {
var video = document.getElementById("video");
video.type = "video/broadcast";
video.bindToCurrentChannel();
}
catch (err) {
console.log("Broadcast Video failed to bind.");
}
}
function stopBroadcastVideo() {
try {
document.getElementById("video").stop();
}
catch (err) {
console.log("Broadcast Video failed to stop.");
}
}
function playFileOnBroadcastVideo(fileUrl)
{
if (!fileUrl) return;
try {
var video = document.getElementById("video");
video.type = "video/mp4";
video.data = fileUrl;
video.play();
}
catch (err) {
console.log("Broadcast Video failed to stop.");
}
}
Вы можете вызывать такие функции, как " fastForward"," перемотка"," play"," stop"" goFullScreen"и т. д., яЯ не уверен, что полный набор описан в документе спецификации, который я связал выше, так как он кажется немного маленьким, если вы не можете найти список методов, вы можете загрузить другие тома и документы спецификации из:
https://www.hbbtv.org/resource-library/specifications/
Я тоже только что искалв ETSI-версиях спецификаций HbbTV и нашел список методов в A.2.4.7, доступных по адресу:
https://www.etsi.org/deliver/etsi_TS/102700_102799/102796/01.04.01_60/ts_102796v010401p.pdf
Я буду загружать приложение видеоплеера HbbTV как частьпроекта, над которым я работаю:
https://github.com/shawty/MsdnChannel9VideoLister
Но это не будет в течение нескольких недель, пока я завершу и загрузю эту часть, прямо сейчас, однако,данные JSON и плагин Kodi включены как часть этого: -)
Если вы будете следить за проектом, вы получите уведомление, когда я загрузлю или изменим что-либо.
Обновление Вы можете найти полную документацию по методам и свойствам для объекта вещательного видео в этом веб-документе:
https://www.oipf.tv/web-spec/volume5.html