Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将多个youtube视频嵌入无铬播放器提示_Php_Api_Youtube - Fatal编程技术网

Php 将多个youtube视频嵌入无铬播放器提示

Php 将多个youtube视频嵌入无铬播放器提示,php,api,youtube,Php,Api,Youtube,因此,在我一直在做的项目中,我使用youtube API将视频添加到一个无铬播放器中(有自定义按钮,一切正常) 它加载从数据库(Codeigniter,PHP)获取的youtube id。 但我想看到的是:我不想加载一个视频,而是将从数据库中获取的所有视频添加到一个播放器的提示中 所以只有一个屏幕,从数据库检索到的第一个视频首先被播放,当第二个视频被加载时,最好也是循环播放。我有什么办法可以做到这一点吗 我的第一个猜测是用youtube id的某处保存数组,并在状态更改时(当“视频停止”事件被触

因此,在我一直在做的项目中,我使用youtube API将视频添加到一个无铬播放器中(有自定义按钮,一切正常)

它加载从数据库(Codeigniter,PHP)获取的youtube id。 但我想看到的是:我不想加载一个视频,而是将从数据库中获取的所有视频添加到一个播放器的提示中

所以只有一个屏幕,从数据库检索到的第一个视频首先被播放,当第二个视频被加载时,最好也是循环播放。我有什么办法可以做到这一点吗


我的第一个猜测是用youtube id的某处保存数组,并在状态更改时(当“视频停止”事件被触发时)从数组中加载下一个id。我还没有尝试过这一点,因为我更喜欢在init上填充提示,这样就不必在视频结束后加载。这可能吗

首先,必须使用Youtube API版本2来激活新的statechange函数

这是您的代码:

var video_list = [
    '21OH0wlkfbc',
    'InZNBcJTmWs',
    'iIzqYiRo01E',
    'ZYmADPVEqU4'
];
var video_current = 0;

function onYouTubePlayerReady( ) {
    var o = document.getElementById( 'ytplayer2_object' );
    if( o ) {
        o.addEventListener( "onStateChange", "ytplayer_statechange" );
    }
}
function ytplayer_statechange( state ) {
    // 0 => video ended
    if ( state == 0 ) {
        video_current++;
        video_current %= video_list.length;
        ytplayer_loadvideo(video_list[ video_current ]);
    }
}

首先,您必须使用Youtube API版本2来激活新的statechange函数

这是您的代码:

var video_list = [
    '21OH0wlkfbc',
    'InZNBcJTmWs',
    'iIzqYiRo01E',
    'ZYmADPVEqU4'
];
var video_current = 0;

function onYouTubePlayerReady( ) {
    var o = document.getElementById( 'ytplayer2_object' );
    if( o ) {
        o.addEventListener( "onStateChange", "ytplayer_statechange" );
    }
}
function ytplayer_statechange( state ) {
    // 0 => video ended
    if ( state == 0 ) {
        video_current++;
        video_current %= video_list.length;
        ytplayer_loadvideo(video_list[ video_current ]);
    }
}

不再需要了,但这确实是正确的方法。我已经明白了,还是非常感谢(我忘了这篇文章XD)我知道。。。但我认为有人需要它……:)不再需要了,但这确实是正确的方法。我已经明白了,还是非常感谢(我忘了这篇文章XD)我知道。。。但我认为有人需要它……:)