0

我制作了一个 youtube 列表,我可以在其中单击加载 youtube 视频的文本。

只有一个问题:当我播放一个视频并单击另一个视频链接时,我正在播放的视频并没有停止。所以我尝试使用 jQuery 停止它,但没有结果。

所以这就是我的 php 生成的:

function generateVideo() {
    echo '<script type="text/javascript" src="scripts/video.js"></script>';
    $tags = initTags();
    $query = '
    SELECT * FROM `youtube_links`';
    $result = mysql_query($query);
    if ( !$result) {
        die('Error: '.mysql_error());
    }

    echo '<div id="content"><table>';
    $i = 0;
    $className = "";
    while ($row = mysql_fetch_array($result)) {
        $i++;
        if ($i == 1) {
            $className = "active";
        } else {
            $className = "inactive";
        }
        echo '
            <tr>
                <td>
                    <a class="'.$className.'" id="item_'.$i.'" onclick="switchVideo(this)">
                        '.$row['Title'].'
                    </a>
                </td>
            </tr>
            ';
    }
    echo '</table></div>';

    $query = '
    SELECT * FROM `youtube_links`';
    $result = mysql_query($query);
    if ( !$result) {
        die('Error: '.mysql_error());
    }

    echo '<div id="videoPlayer">';

    $i = 0;
    $className = "";
    while ($row = mysql_fetch_array($result)) {
        $link = $row['Link'];
        $i++;
        if ($i == 1) {
            $className = "activePlayer";
        } else {
            $className = "inactivePlayer";
        }
        echo '<iframe class="'.$className.'" id="ytplayer'.$i.'" type="text/html" width="640" height="390"
             src="'.$link.'?version=3&enablejsapi=1"
             frameborder="0">
             </iframe>';
    }

    echo '</div>';
}

这是我的 JavaScript:

function switchVideo(obj) {
    var idText = obj.id;
    var idArray = idText.split("_");
    var id = idArray[1];

    var videoPlayer = document.getElementById('ytplayer' + id);

    var elements = document.getElementsByClassName("activePlayer");

    for (var i = 0; i < elements.length; i++) {
        elements[i].className = "inactivePlayer";
        $(elements[i]).pause();
    }

    $('.inactivePlayer').each(function() {
        $(this).stopVideo();
    }); 


    videoPlayer.className = "activePlayer";
}

您可以看到我将 youtube API 添加到 iframe 中,所以出了什么问题?

4

1 回答 1

-1

这可能是 javascript Youtube API 异步加载的情况。你检查了吗?

格雷茨,亚历克斯

于 2013-04-10T08:03:20.370 回答