当然,您可以只使用 JS 来创建所有内容。您无需在 html 正文中预先创建任何内容。
这是在 JS 中创建视频元素的简单方法:
var videlem = document.createElement("video");
/// ... some setup like poster image, size, position etc. goes here...
/// now, add sources:
var sourceMP4 = document.createElement("source");
sourceMP4.type = "video/mp4";
sourceMP4.src = "path-to-video-file.mp4";
videlem.appendChild(sourceMP4);
//// same approach add ogg/ogv and webm sources
在此之前,您应该检查浏览器是否支持视频元素,如果支持,可以播放哪些文件格式。你可以这样做:
var supportsVideoElement = !!document.createElement('video').canPlayType;
然后,如果支持视频元素,测试可以播放哪些视频格式:
var temp = document.createElement('video');
var canPlay_MP4 = temp.canPlayType('video/mp4; codecs="avc1.42E01E,mp4a.40.2"');
var canPlay_OGV = temp.canPlayType('video/ogg; codecs="theora,vorbis"');
var canPlay_WEMB = temp.canPlayType('video/webm; codecs="vp8,vorbis"');
在此之后,您可以仅使用 JS 将视频元素添加到您的页面,并设置适当的视频源。服务器端的 .htaccess 可能存在问题,您需要在其中添加行:
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
这可能不需要,具体取决于您的服务器的设置方式,但如果您在播放服务器上的视频时遇到问题,但它们可以正常播放,例如。 localhost 在您的开发机器上,这可以解决问题。上面几行的.htaccess 应该放在服务器端视频文件所在的文件夹中。
现在,为了让这个元素在 getElementById(...) 中可用,你只需要在创建它时设置它的 id:
var videlem = document.createElement("video");
videlem.id = "xxxxxx";
现在您可以稍后使用:
var videlem = document.getElementById("xxxxxx");
但是,正如已经有人评论的那样,如果您已经创建了元素并且有指向它的变量,则不需要这样做......直接使用它。
希望这会有所帮助:-)