gpt4 book ai didi

javascript - video.js - 单击链接时更新视频源

转载 作者:太空狗 更新时间:2023-10-29 14:41:22 24 4
gpt4 key购买 nike

我正在尝试创建一个包含嵌入视频的页面,当单击视频帧下方的链接时,该页面将动态更改源。源视频在我的主机服务器上。即这张照片说明了这一点:

![页面样本][1]

我遇到了 this page ,这似乎有答案,但我试过了,但没有用。按照示例,我将 css 和 javascript 粘贴到正文中,并将必要的 html 粘贴到正文中。我更新了所有对我的 url 的引用,并尝试使文件名与测试示例相同。以下是我尝试过的。

有人可以指出我的错误,或提供更优雅的方法吗?单击链接时基本上会动态更改嵌入的视频,并且视频可以在所有典型的浏览器和大多数设备中运行。这是一个 wordpress 网站, 为 wordpress 使用 JW Player ,(我的错误)我发现这个脚本/代码实际上是用于 Video.js

它加载前图像但不播放。

作为测试,我尝试了这个,它确实可以正确播放单个视频:

<video id="testvideo" class="video-js vjs-default-skin" width="440" height="300"     controls="controls">
<source src="http://www.mywebsite.net/videos/testvid_01.mp4" type="video/mp4"/>
<source src="http://www.mywebsite.net/videos/testvid_01.webm" type="video/webm"/>
<source src="http://www.mywebsite.net/videos/testvid_01.ogv" type="video/ogg"/>
</video>

多源链接的javascript版本

<html>
<head>
<title></title>
<style media="screen" type="text/css">
.wrap { margin:30px auto 10px; text-align:center }
.container { width:440px; height:300px; border:5px solid #ccc }
p { font: 10px/1.0em 'Helvetica',sans-serif; margin:20px }
</style>
<script>
$("input[type=button]").click(function() {
var $target = "testvid_"+$(this).attr("rel");
var $content_path = "http://www.mywebsite.net/videos/";
var $vid_obj = _V_("div_video");

// hide the current loaded poster
$("img.vjs-poster").hide();

$vid_obj.ready(function() {
// hide the video UI
$("#div_video_html5_api").hide();
// and stop it from playing
$vid_obj.pause();
// assign the targeted videos to the source nodes
$("video:nth-child(1)").attr("src",$content_path+$target+".mp4");
$("video:nth-child(1)").attr("src",$content_path+$target+".ogv");
$("video:nth-child(1)").attr("src",$content_path+$target+".webm");
// replace the poster source
$("img.vjs-poster").attr("src",$content_path+$target+".png").show();
// reset the UI states
$(".vjs-big-play-button").show();
$("#div_video").removeClass("vjs-playing").addClass("vjs-paused");
// load the new sources
$vid_obj.load();
$("#div_video_html5_api").show();
});
});

$("input[rel='01']").click();
</script> </head>

<body>
<section class="container wrap">
<video id="div_video" class="video-js vjs-default-skin" controls preload="auto" width="440" height="300" poster="http://www.mywebsite.net/videos/testvid_01.png" data-

setup="{}">
<source src="" type="video/mp4">
<source src="" type="video/ogg">
<source src="" type="video/webm">
</video>
</section>

<div class="wrap">
<input rel="01" type="button" value="load video 1">
<input rel="02" type="button" value="load video 2">
<input rel="03" type="button" value="load video 3">
</div>

</body>
</html>

第一个视频的预加载图像加载但没有视频,错误是“找不到支持格式和 MIME 类型的视频”

所以我在这部分添加了第一个视频的来源

setup="{}">  
<source src="http://www.mywebsite.net/videos/videos/testvid_01.mp4" type="video/mp4">
<source src="http://www.mywebsite.net/videos/videos/testvid_01.ogv" type="video/ogg">
<source src="http://www.mywebsite.net/videos/videos/testvid_01.webm type="video/webm">
</video>

结果第一个视频加载但不加载其他链接的视频。

视频名称/png:testvid_01.mp4、testvid_01.ogv、testvid_01.webm、testvid_01.pngtestvid_02.mp4、testvid_02.ogv、testvid_02.webm、testvid_02.pngtestvid_03.mp4, testvid_03.ogv, testvid_03.webm, testvid_03.png

我在 wordpress 页面和 html 页面都试过了,结果是一样的。

我不确定这个脚本是否会做我想做的事?

最佳答案

这会三次覆盖视频元素的 src 属性,因此它将始终设置为 webm 视频。

$("video:nth-child(1)").attr("src",$content_path+$target+".mp4");
$("video:nth-child(1)").attr("src",$content_path+$target+".ogv");
$("video:nth-child(1)").attr("src",$content_path+$target+".webm");

改为使用 video.js API加载一组源,以便 video.js 可以选择当前播放技术可以播放的源:

$vid_obj.src([
{ type: "video/mp4", src: $content_path+$target+".mp4" },
{ type: "video/webm", src: $content_path+$target+".webm" },
{ type: "video/ogg", src: $content_path+$target+".ogv" }
]);

更新 fiddle :http://jsfiddle.net/mister_ben/8awNt/

关于javascript - video.js - 单击链接时更新视频源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com