gpt4 book ai didi

javascript - 使用 json 数据更改视频标签中的 src 属性

转载 作者:行者123 更新时间:2023-12-03 10:27:48 26 4
gpt4 key购买 nike

我正在尝试使用 HTML 和 JavaScript 制作一个视频播放器,它将播放一系列视频,一个接一个,直到所有 6 个视频都播放完毕。视频的 URL 存储在数组中,并映射到名为 Clips.json 的 .json 文件中。

文件中的数据如下:

    [
{
"id":"ashklasd132asddfgdf",
"name": "War on Drugs continues",
"description":"Losses continue in agressive raid on local property",
"content-url": "http://buffalogrove.sat.iit.edu/Kitty.mp4",
"thumb-url":"http://buffalogrove.sat.iit.edu/thumb/dogs_friends-t2.jpg"
},
{
"id":"asdasd132asddf667jf",
"name": "Parlimentary Proceedings",
"description":"World Leaders meet to determine the latest policies on climate change relief",
"content-url": "http://buffalogrove.sat.iit.edu/Clouds%2038%20Timelapse.mp4",
"thumb-url":"http://buffalogrove.sat.iit.edu/thumb/colorful_clouds-t2.jpg"
},
{
"id":"123dfg6132asddfgdz",
"name": "Weather for March 22nd 2015",
"description":"Join Jeremy Brown for today's weather",
"content-url": "http://buffalogrove.sat.iit.edu/Clouds-Time_lapse_22.mp4",
"thumb-url":"http://buffalogrove.sat.iit.edu/thumb/hidden_lagoon-t2.jpg"
},
{
"id":"pzxc87asdkjl44h7h",
"name": "Taking a walk on the wide-side",
"description":"Cook Counties latest conservation efforts led to a new discovery",
"content-url": "http://buffalogrove.sat.iit.edu/Flower_4.mp4",
"thumb-url":"http://buffalogrove.sat.iit.edu/thumb/nature_scenes_3-t2.jpg"
},
{
"id":"mkiaasdsjdh7asd8889",
"name": "Musical Stunner",
"description":"Local musician proves nay-sayers wrong by providing ample range",
"content-url": "http://buffalogrove.sat.iit.edu/Piano_keys.mp4",
"thumb-url":"http://buffalogrove.sat.iit.edu/thumb/turkey_karadeniz_region-t2.jpg"
},
{
"id":"zklsjdpoiqwehbhfyvfy6h",
"name": "H-Diddy Represent",
"description":"The newest Album from H-Diddy",
"content-url": "http://buffalogrove.sat.iit.edu/Pigeon.mp4",
"thumb-url":"http://buffalogrove.sat.iit.edu/thumb/nanxiang_ancient_town_shanghai_china-t2.jpg"
},
]

在 URL 中的视频播放完毕后,我无法更改 src 属性。视频播放第一个视频后,它停止,并且不会继续播放第二个视频。我不知道这是因为我在 AJAX get 请求中调用了错误的 JSON 数据还是其他原因,但如果有人可以帮助我解决这个问题,我将不胜感激。

我的嵌入 JavaScript 的 HTML 代码如下:

    <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>IIT News</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<style>
.starter-template {
padding: 40px 15px;
text-align: center;
}
</style>
<script type="text/javascript" src="/myJS.js" language="javascript"> </script>

</head>

<body onload="loadFunction()">
<div class="container">
<div class="hook">
<video onended="playNext()" width="640" height="480" id="myVideo" controls autoplay>
<!--<source src="parsedData[0].['content-url'][conUrlCount]" type="video/mp4"></source>-->
<source src="http://buffalogrove.sat.iit.edu/Kitty.mp4" type="video/mp4"></source>
</video>
</div><!-- /.hook -->
</div><!-- /.container-->


</body>
</html>

myJS.js 如下

        var conUrlCount = 0;
var myVideo = document.getElementById("myVideo");

//parsedData should be declared outside the function scope since we want it to be accessible from outside
var parsedData;
var callback = function (text) {
//parsedData = JSON.stringify(JSON.parse(text));
parsedData = JSON.parse(text);
conUrlCount = 0;
//after load play the first video
playNext();
};

//when page is loaded, data in json file is parsed and returned
function loadFunction() {
//returning json data
ajax.get("clips.json", callback);
};


function playNext() {
if (!parsedData) {
return
}
var myVideo = document.getElementById("myVideo");
myVideo.src = parsedData[conUrlCount]['content-url'];
myVideo.play();
conUrlCount++;
};

最佳答案

一个问题是 json 对象是回调方法的局部变量,请将其设为全局变量

<video  onended="playNext()" width="640" height="480" id="myVideo" controls 

自动播放>

然后

var conUrlCount = 0;
var myVideo = document.getElementById("myVideo");

//parsedData should be declared outside the function scope since we want it to be accessible from outside
var parsedData;
var callback = function (text) {
parsedData = JSON.parse(text);
conUrlCount = 0;
//after load play the first video
playNext();
};

//when page is loaded, data in json file is parsed and returned
function loadFunction() {
//returning json data
ajax.get("clips.json", callback);
};


function playNext() {
if (!parsedData) {
return
}
var myVideo = document.getElementById("myVideo");
myVideo.src = parsedData[conUrlCount]['content-url'];
myVideo.play();
conUrlCount++;
}

演示:Fiddle

关于javascript - 使用 json 数据更改视频标签中的 src 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29337846/

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