Видеоплеер с клавиатурой
Я пытаюсь построить видеоплеер с клавиатурой. Может ли какой-нибудь орган помочь мне с функцией перемотки? Я хочу, чтобы видео перематывалось при нажатии влево. Это код до сих пор. Кнопка воспроизведения и паузы работает
Я получил сообщение об ошибке Не могу прочитать свойство 'currentTime' со значением NULL
var intervalForward;
var intervalRewind;
function handleKeyCode(kc) {
switch(kc) {
case VK_LEFT:
keyFunction("LEFT");
return true;
break;
case VK_PLAY:
keyFunction("PLAY");
return true;
break;
case VK_PAUSE:
keyFunction("PAUSE");
return true;
break;
case VK_REWIND:
keyFunction("REWIND");
return true;
break;
default:
return false;
}
}
function keyFunction(e) {
switch(e) {
case "OK":
document.getElementById("myvideo").play();
break;
case "BACK":
document.getElementById("myvideo").pause();
break;
case "LEFT":
document.getElementById(myvideo).currentTime == 0;
break;
}
}
function init() {
var script2 = document.createElement('script');
script2.setAttribute('src', 'keycodes.js');
document.body.appendChild(script2);
document.addEventListener("keydown", function(e) {
if (handleKeyCode(e.keyCode))
e.preventDefault();
}, false);
}
0 ответов
Установка currentTime еще не работает одинаково во всех браузерах, документация по спецификации находится здесь:
https://www.w3.org/TR/2011/WD-html5-20110113/video.html
Но по сути это сводится к тому, что вы почти всегда должны ставить видео на паузу, прежде чем пытаться установить его EG:
let myVideo = document.getElementById("video");
myVideo.pause();
myVideo.currentTime = 0;
Однако лучший способ управления поиском в видео - использовать свойство "playRate".
Обычно для него установлено значение 1.0, что означает нормальную скорость, однако установка отрицательного значения будет визуально воспроизводить видео в обратном направлении с этой скоростью, чем выше отрицательное значение, тем быстрее визуальная перемотка назад.
Точно так же положительные числа больше 1.0 воспроизводят видео вперед с разной скоростью.
Однако здесь я дам вам несколько дополнительных советов по воспроизведению видео в приложении, совместимом с HbbTV.
Как правило, в приложениях HbbTV НЕ следует использовать видеотег HTML5, вместо этого следует использовать объект "Broadcast Video", полную информацию о котором можно найти в разделах 6.2.2.6 и 9.7 спецификации HbbTV, которые можно загрузить с:
Если вам действительно необходимо использовать стандартный тег видео HTML5, то в разделе 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 object failed to bind to broadcast.");
}
}
function stopBroadcastVideo() {
try {
document.getElementById("video").stop();
document.getElementById("video").release();
}
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 object failed to play MP4.");
}
}
Можно назвать такие функции, как "FastForward", "перемотка", "игры", "стоп", "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 присутствуют как часть этого:-)
Если вы будете следить за проектом, вы получите уведомление, когда я что-нибудь загружу или изменю.
Обновление Вы можете найти полную документацию по методам и свойствам для объекта видео вещания в этом веб-документе: