Javascript Jquery自动播放视频序列不工作
我已经用这段代码工作了几天了,我就是想不出来 我能够使用youtube api自动播放视频序列。以下是我的例子: 但是,我们需要动态创建视频ID数组,因此我将其修改为:Javascript Jquery自动播放视频序列不工作,javascript,jquery,youtube,Javascript,Jquery,Youtube,我已经用这段代码工作了几天了,我就是想不出来 我能够使用youtube api自动播放视频序列。以下是我的例子: 但是,我们需要动态创建视频ID数组,因此我将其修改为: <script> $(function(){ $('li').on("click",function(){ var pilename = $(this).attr('data-pile'); var videoIDs = []; $("li[data-pil
<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>
$(函数(){
$('li')。在(“单击”,函数()上){
var pilename=$(this.attr('data-pile');
var videoIDs=[];
$(“li[数据堆='”+pilename+“']”)。每个(函数(索引){
videoIDs.push($(this.attr('id'));
var播放器,currentVideoId=0;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
高度:'350',
宽度:'425',
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
函数onPlayerReady(事件){
event.target.loadVideoById(VideoId[currentVideoId]);
}
函数onPlayerStateChange(事件){
如果(event.data==YT.PlayerState.end){
currentVideoId++;
if(当前视频ID<视频ID.长度){
loadVideoById(videoid[currentVideoId]);
}
}
}
});
});
以下是这一尝试:
然而,youtube api方法从未被调用
我的代码有问题吗?导致代码中断的主要原因有两个:
在脚本标记中:
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]);
}
}
}
var videoIDs=[];//从第一个文件传递的格式化字符串
var播放器,currentVideoId=0;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
高度:'350',
宽度:'425',
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
函数onPlayerReady(事件){
event.target.loadVideoById(VideoId[currentVideoId]);
}
函数onPlayerStateChange(事件){
如果(event.data==YT.PlayerState.end){
currentVideoId++;
if(当前视频ID<视频ID.长度){
loadVideoById(videoid[currentVideoId]);
}
}
}
它可以工作!这里是:视频没有播放。:/你需要将文件命名为“file-to-CALL.php”作为一个更合适的名称,比如player.php。其次,$vids=$\u POST['videos'];必须包装在php文件顶部的php中,如下所示:
,以从第一个文件中获取传递的ID。然后它将正确播放。请检查它并在您使用的浏览器上查看源代码?我访问了您的链接,视频也不播放。我使用的是chrome。这在您的浏览器上运行吗:我也使用chrome并经过测试它与Firefox和IE一起工作,就像一个魔咒。
`<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]);
}
}
}