在'video'标签中使用变量'src' - 使用文档的URL创建文件名变量

问题描述 投票:0回答:1

我正在尝试使用变量(基于与文档URL一起传递的参数)来使用HTML5视频标记播放视频。

我有一个HTML5页面列出了一堆程序。我为每个位于原始HTML页面级别下的目录中的过程创建了.mp4视频。这些都是为了在CD或硬盘上运行;没有使用互联网或任何类型的服务器。

目前我使用<a>标签的href参数直接打开视频。这有效,但我想知道打开第二个嵌入了视频的HTML5页面是否会更好,因为它现在是HTML5原生的。

我想我会使用单个HTML页面播放视频,其中包含根据用户选择从第一个HTML页面发送的视频的名称:HTML第1页 - 用户点击过程 - 打开第2个html页面,其中包含URL末尾的参数。在第二个HTML页面中,解析URL以获取视频名称,将此变量用作视频标记中的“src”:

<video controls >
    <source src=v+".mp4" >
    Sorry, your browser doesn't support embedded videos.
</video>

但这不起作用。它似乎不理解变量。我试过用几种方法构建变量。

相反,我的解决方案是为每个特定的.mp4文件创建一个HTML页面,并在每个单独的HTML页面中对视频文件名进行硬编码。必须有一个更简单的方法。你有什么建议吗?

我只掌握HTML / CSS / JavaScript的基本知识。

html5 video
1个回答
0
投票

你需要使用Javascript来(a)从URL中找到变量,并(b)在显示时将其写入文档。

下面的示例包含一些获取参数的代码,然后使用该函数获取名为v的参数,如果存在,则使用该函数编写<video>标记:

<html>
<body>

<script>
// split the querystring parameters on the URL and find the requested one
function getParam(parameterName) {
    var result = null, tmp = [];
    var items = location.search.substr(1).split("&");
    for (var index = 0; index < items.length; index++) {
        tmp = items[index].split("=");
        if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
    }
    return result;
}

v = getParam("v")
if (v===null) {
    document.write("<p>You need to add a ?v={filename} to the url")
} else {
    document.write("<video controls>")
    document.write("<source src=\""+v+".mp4\" >")
    document.write("Sorry, your browser doesn't support embedded videos.")
    document.write("</video>")
}
</script>

</body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.