Jquery 自动播放视频序列不起作用
Jquery autoplay video sequence not working
我已经使用这段代码几天了,但我只是想不通。
我能够使用youtube API进行自动播放视频序列。 这是我的例子:
http://www.reyesmotion.com/videosequence/index.html
但是,我们需要动态创建的视频ID数组,因此我将其修改为:
<script>
$(function(){
$('li').on("click",function(){
var pilename = $(this).attr('data-pile');
var videoIDs = [];
$("li[data-pile='"+pilename+"']").each(function(index){
videoIDs.push($(this).attr('id'));
var player, currentVideoId = 0;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '350',
width: '425',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
event.target.loadVideoById(videoIDs[currentVideoId]);
}
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.ENDED) {
currentVideoId++;
if (currentVideoId < videoIDs.length) {
player.loadVideoById(videoIDs[currentVideoId]);
}
}
}
});
});
</script>
这是这个尝试:http://www.reyesmotion.com/videoTest/index.html
但是,youtube api方法永远不会被调用。
我的代码有问题吗?
导致代码中断的两个主要因素:
- 视频 ID 传递不正确;每个 ID 必须用单引号括起来。
- 页面加载后,包含 Youtube API 的脚本将随之加载,并带有空的 var videoID = [];因此不会加载播放器。
要更正此问题,请按如下所示修改您的第一个文档:
- 添加如图所示的表单。
- 将 jquery 代码添加到其中。
-
从文件中删除完全播放视频的功能及其前面的代码(div id="player"和包含 youtube iframe_api 的脚本标签)。
$('<form id="lists" method="post" action="FILE-TO-CALL.php"> <input type="hidden" id="videos" name="videos" value="" /> <input name="play_list" id="play_list" type="submit" value="Play"> </form>
li').on("click",function(){ var vidid = $(this).attr('id'); if (str == ") { str = "'" + vidid +"'"; }else{ str = str + ",'" + vidid +"'"; } $("#videos").val(str);将 str 字符串放在隐藏字段中 });
创建第二个文件,保存它并在 action="FILE-TO-CALL.php" 中更改名称。在第二个新创建的文件中,获取与隐藏字段中的表单一起发送的 str 的值:
$vids = $_POST['videos'];
并把它放在身体里:
`<div id="player"></div><script src="http://www.youtube.com/iframe_api"></script>`
并在脚本标记中:
var videoIDs = [<?php echo $vids;?>]; //the formatted string passed from the first file
var player, currentVideoId = 0;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '350',
width: '425',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
event.target.loadVideoById(videoIDs[currentVideoId]);
}
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.ENDED) {
currentVideoId++;
if (currentVideoId < videoIDs.length) {
player.loadVideoById(videoIDs[currentVideoId]);
}
}
}
它有效!
相关文章:
- HTML5视频链接在Chrome中不起作用
- setAttribute和video.src用于更改IE9中不起作用的视频标记源
- html视频javascript播放方法在移动Safari中不起作用
- VideoJS:mp4在动态更改视频url时不起作用
- HTML5<视频>元素在Firefox、Opera和Safari中不起作用
- YouTube V3 API——按持续时间过滤相关视频信息,不;似乎不起作用
- 整页视频在Firefox中不起作用
- Chrome 中的 HTML5 视频边框半径不起作用
- Amazon S3 视频在 HTML 中不起作用
- 在 Web 视图上自动启动 html5 视频,在 Android 4.2.2 上不起作用
- HTML5 视频控件不起作用
- HTML 5<视频>元素上的弹性增长不起作用
- IOS Cordova/Phonegap 离线视频源标签不起作用
- Jwplayer视频在chrome中不起作用
- HTML 视频标签在野生动物园和手机上不起作用
- 通过脚本播放视频在安卓上不起作用
- 在视频缓冲之前,事件不起作用
- 视频播放事件中的 Angular 2 路绑定不起作用
- Chrome中的HTML5视频在mp4下不起作用
- 使用 JW 播放器闪光灯进行静音切换的链接,回退到 HTML5 视频不起作用