Youtube嵌入式视频激活太晚,无法接受javascript通话

时间:2010-10-27 16:11:51

标签: javascript flash youtube

我的页面中嵌入了YouTube视频。它是隐藏的(显示:无)。您需要单击其中一个视频链接按钮才能显示视频并进行播放。链接定义如下:

<a href="javascript:play('xxxxxxxxxxx')">Video 1</a>
<a href="javascript:play('xxxxxxxxxxx')">Video 2</a>

xxxxxxxxx代表YouTube视频ID。

这是播放功能:

function play(id)
{
    ytplayer.style.display = 'block';
    ytplayer.loadVideoById( id, 0, 'hd1080' );
}

它从根本上说非常简单!但这是问题所在。由于隐藏了视频播放器,因此不会激活Flash对象。因此,当我点击视频链接时,行ytplayer.style.display = 'block';会显示视频播放器,但闪存加载大约需要半秒钟。在此期间,它无法接受任何方法调用,例如下一行ytplayer.loadVideoById( id, 0, 'hd1080' );。基本上,我必须点击链接两次,一次加载flash视频播放器,第二次实际将视频加载到播放器中。

1 个答案:

答案 0 :(得分:0)

看起来,一旦启用视频,您需要设置并等待回调:

onYouTubePlayerReady(playerid)

(摘自本页:http://code.google.com/apis/youtube/js_api_reference.html

在该功能中,您可以进行任何需要加载播放器的调用:

ytplayer.loadVideoById( id, 0, 'hd1080' );

如果您没有使用chromeless播放器,则可能需要侦听onStateChange和onError事件。