我正在尝试使用键盘控件构建视频播放器。某些机构可以帮助我实现快退功能吗?我想向左按时快退视频。这是到目前为止的代码。播放和暂停按钮有效
我收到一条错误消息,告知无法读取null的属性“ currentTime”
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);
}
设置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;
但是,控制视频中搜索的一种更好的方法是使用“ playbackRate”属性。
通常,将其设置为1.0表示正常速度,但是将其设置为负值将以该速度在视觉上向后播放视频,负值越大,视觉倒带速度越快。
同样,大于1.0的正数将以不同的速度向前播放视频。
但是,我将在此处为您提供一些有关在符合HbbTV的应用程序中播放视频的建议。
通常,在HbbTV应用程序中,您不应使用HTML5视频标签,而应使用“广播视频”对象,有关该对象的完整详细信息,请参见HbbTV规范第6.2.2.6和9.7节,可以从中下载。 :
如果您确实必须使用标准的HTML5视频标签,那么规范的9.6节将告诉您您需要了解的内容,但是请注意,它很复杂且混乱。
公平地说,使用标准广播视频对象非常容易,您需要在HTML中定义与OIPF兼容的视频对象,如下所示。
<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/
我也一直在查看HbbTV规范的ETSI版本,并在以下网址找到了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插件就已经存在了:-)
如果您关注该项目,则在我上传或更改任何内容时都会收到通知。
更新您可以在以下Web文档中找到广播视频对象的完整方法和属性文档:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句