Html 加载按名称传递到URL的视频
我正在尝试使用HTML或HTML5在网页上播放驻留在服务器上的许多视频文件中的一个。它应该基于通过参数传递到url的任何文件名运行。这是我到目前为止的代码,但它不起作用 示例:www.mysite.com?video=myVideo.mp4Html 加载按名称传递到URL的视频,html,Html,我正在尝试使用HTML或HTML5在网页上播放驻留在服务器上的许多视频文件中的一个。它应该基于通过参数传递到url的任何文件名运行。这是我到目前为止的代码,但它不起作用 示例:www.mysite.com?video=myVideo.mp4 因此myvideo.mov将驻留在服务器上的文件夹中。我希望参数video等于视频文件名 <!DOCTYPE html> <html> <body onLoad="GetVideo()"> <div style="
因此myvideo.mov将驻留在服务器上的文件夹中。我希望参数video等于视频文件名
<!DOCTYPE html>
<html>
<body onLoad="GetVideo()">
<div style="width: 100%; height: 768px; controls Autoplay=autoplay; overflow: hidden;">
<video id="video" width="100%" loop autoplay controls>
<source id="#videoSource" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
<script>
function GetVideo() {
x = getUrlVars()["video"];
document.querySelector("#videoSource").setAttribute("src", x);
}
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
</script>
</body>
</html>
您的浏览器不支持视频标记。
函数GetVideo(){
x=getUrlVars()[“视频”];
document.querySelector(“#videoSource”).setAttribute(“src”,x);
}
函数getUrlVars(){
var vars={};
var parts=window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,函数(m,键,值){
变量[键]=值;
});
返回变量;
}
预期结果将是:
运行此URL示例:
www.mysite.com?video=myvideo.mp4
它应该播放服务器上站点文件夹中的视频文件“myvideo.mp4”
更新后的示例—这是我希望它做的—我采纳了下面的建议,但下面的建议不起作用。我正在尝试让它在所有浏览器上运行: 示例:www.mysite.com?video=myVideo.mp4&folder=myFolder
<!DOCTYPE html>
<html>
<body>
<div style="width:100%;overflow: hidden;">
<video width="100%" controls>
<source src='about:blank' type="video/mp4">
</video>
</div>
<script>
function loadVideo() {
var player = document.querySelector('video');
var base = 'http://ercx.natfas.com/';
var videoFile = getUrlVars()["video"];
var folder = getUrlVars()["folder"];
if (${folder} = "") {
player.src = '${base}${videoFile}';
} else {
player.src = '${base}${folder}/${videoFile}';
}
player.load();
player.play();
}
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
loadVideo();
</script>
</body>
</html>
函数loadVideo(){
var player=document.querySelector('video');
var base=http://ercx.natfas.com/';
var videoFile=getUrlVars()[“video”];
var folder=getUrlVars()[“folder”];
如果(${folder}=”“){
player.src='${base}${videoFile}';
}否则{
player.src='${base}${folder}/${videoFile}';
}
player.load();
player.play();
}
函数getUrlVars(){
var vars={};
var parts=window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,函数(m,键,值){
变量[键]=值;
});
返回变量;
}
loadVideo();
您的浏览器不支持视频标记。
函数GetVideo(){
x=getUrlVars()[“视频”];
document.querySelector(“#videoSource”).setAttribute(“src”,x);
}
函数getUrlVars(){
var vars={};
var parts=window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,函数(m,键,值){
变量[键]=值;
});
返回变量;
}
视频文件阵列
标记播放MOV,这意味着您有一个方便的方法:
标记:.map()
处理数组,并使用基函数对数组中的每个元素进行插值(请参见演示中的函数loadVideo()
)
[loop]
属性(如问题的HTML所示)。相反,将
标记注册到end
事件,并增加索引(请参阅演示结束时的eventListener)
不能播放视频,因此
和[autoplay]
属性在
上是不必要的(与所讨论的HTML相关)
演示 此视频播放器将自动加载(如问题的HTML所示)
var player=document.querySelector('video');
var base=https://storage04.dropshots.com/photos6000/photos/1381926/20170326/';
var文件=['005609.mp4'、'005610.mp4'、'005612.mp4'];
var指数=0;
函数loadVideo(主机、阵列、索引){
var url=array.map(函数(vid,idx){
返回`${host}${vid}`;
});
player.src=url[index];
player.load();
player.play();
}
player.addEventListener('end',函数(e){
如果(索引>=files.length){
指数=0;
加载视频(基本、文件、索引);
}否则{
加载视频(基本、文件、索引);
}
索引++;
});
加载视频(基本、文件、索引)代码>
以最接近工作的方式回答Tibbelit的问题。它在Chrome上不起作用,但在其他浏览器上似乎起作用
您的浏览器不支持视频标记。
函数GetVideo(){
x=getUrlVars()[“视频”];
document.querySelector(“#videoSource”).setAttribute(“src”,x);
}
函数getUrlVars(){
var vars={};
var parts=window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,函数(m,键,值){
变量[键]=值;
});
返回变量;
}
您(0)缺少一个“
在开始正文标记中。当此值被修复时,GetVideo中的x
将获得正确的值。不确定你想用document.videoSource=x做什么代码>-这就是你的问题所在。
标记不能播放.mov
文件,因此请将其转换为MP4和/或WebM。你为什么要删除URL?它们需要精确的字符。它们将不再指向文件的位置。我看不出这是如何可用的…当然,它不会在任何浏览器中工作。浏览器需要有效的url而不是删除字符串。您是否查看了getUrlVars()
返回的内容?现在,您应该得到错误,因为它已损坏…/[?&]+([^=&]+)=([^&]*)/gi,
我刚刚发现另一个错误,它不是黑客和粘贴的受害者。。。转到您是否收到JavaScript错误或其他信息继续?使用running example更新了答案。hmmm,我尝试使用您的最新示例,但仍然不起作用。我只是得到一个空白的视频窗口。它不会让我在这里粘贴代码。。。说太长了,我用了你的密码。在服务器文件夹中放置了test.mp4。然后尝试通过?video=test.mp4 a
var files = ['005609.mp4', '005610.mp4', '005612.mp4'];
var base = 'https://storage04.dropshots.com/photos6000/photos/1381926/20170326/';
var index = 0;
var player = document.querySelector('video');