如何使用Javascript动态地播放多个youtube或vimeo视频一个接一个
How to play multiple youtube or vimeo videos one after another dynamically using Javascript
如何使用JavaScript动态播放多个youtube或vimeo视频一个接一个?
例如:我需要有人帮我做这项工作。我有四个视频。每个视频应该一个接一个地播放,但这四个视频是分在菜单列表中。默认情况下,第一个视频必须播放,其余三个视频应处于活动状态,当第一个视频完成后,用户需要点击第二个菜单列表。请帮助我,我对这个概念没有概念
参考
对于Youtube来说非常简单。您只需要一个iframe
,并在查询字符串("playlist")中提供额外的YouTube视频id,用逗号分隔。
<iframe
id="p_1_zone_4_video"
onload="oniframeYtLoaded(this)"
style="width:100%; height:100%;border:0 none;"
src="https://www.youtube.com/embed/xKXaEJZxRHQ?loop=1&enablejsapi=1&playlist=yALuTl2THO0,yL1-MUdJ-2I">
我理解你的问题,最初只有第一个视频可以播放。完成后,第二个视频按钮被激活,如果用户点击它,则第二个视频开始播放。
你需要在保存视频信息的对象上添加一个active(canBePlayed)属性。只有第一个是真的(其他都是假的)。
视频处于活动状态,表示该视频的按钮处于活动状态,否则该按钮处于禁用状态,无法点击。打开按钮,点击播放视频。在视频端,下一个视频处于活动状态。这是如何检测视频结束:检测HTML5视频何时结束
关于这个堆栈:
HTML5视频循环src改变结束播放功能不工作
你可以使用video html5标签和javascript实现这一点。请注意,由于缺少视频,片段将不起作用,但您可以查看实现目标的方法。
var videosList = ["video1.mp4", "video2.mp4", "video3.mp4", "video4.mp4"]
video_count = 1;
videoPlayer = document.getElementById("homevideo");
function run(){
video_count++;
if (video_count == videosList.length)
video_count = 0;
var nextVideo = "app/video"+videosList[video_count];
videoPlayer.src = nextVideo;
videoPlayer.play();
};
<video id="homevideo" width="100%" autoplay onended="run()">
<source src="app/video1.mp4" type='video/mp4'/>
</video>
如果你需要youtube视频,你需要像在这个例子中使用youtube api,并检查onPlayerStateChange
以便播放下一个视频:
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.playVideo();
}
// 5. The API calls this function when the player's state changes.
// The function indicates that when playing a video (state=1),
// the player should play for six seconds and then stop.
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
setTimeout(stopVideo, 6000);
done = true;
}
}
function stopVideo() {
player.stopVideo();
}
<!DOCTYPE html>
<html>
<body>
<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>
</body>
</html>
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 一个Vimeo<iframe>嵌入劫持滚动/滑动事件
- 两个脚本(FitVids.js,Vimeo.js)一起杀死调用一个函数来播放视频,导致:VimeoAPI不是一个函数
- 更多的Vimeo视频在一个单一的播放器自动播放
- 如何使用Javascript动态地播放多个youtube或vimeo视频一个接一个
- 如何有一个Vimeo视频从它离开的地方,当页面重新加载cookie
- 如何更新一个图标,vimeo风格
- 如何用vimeo嵌入代码创建一个自定义的seekTo播放器界面