YouTube JS API:检测"嵌入已被禁用"

Rob*_*Rob 4 youtube youtube-api

使用youtube javascript api(http://code.google.com/apis/youtube/js_api_reference.html),我试图允许用户将视频嵌入他在我的应用中创建的某些内容中.我已经完成了所有工作,除了能够检测和处理视频不允许嵌入的情况.

目前,播放器加载并显示不允许视频的缩略图,并且只有在用户尝试播放时才会出错.这很糟糕,因为用户可能在保存/发送其内容之前不播放视频.我想先发制人地检测到不允许嵌入视频,并向用户显示有用的消息.

我能看到的唯一解决方案是实际播放它(以编程方式)并处理此时引发的错误.

现有解决方法:

  1. 嵌入播放器(embedSWF)
  2. onYouTubePlayerReady():在onStateChange事件监听器上添加onError.
  3. onStateChange(newState):当视频完成加载时,尝试播放它.
    例如if(newState == 5/*CUED*/){player.mute(); player.playVideo(); player.stopVideo(); player.unMute(); }
  4. onError(错误):如果视频无法在onStateChange中播放,则会在此处收到错误.

有没有更好的办法?

谢谢!
-抢

小智 6

您可以在嵌入之前获取该视频条目的JSON源,并查看是否存在"yt $ format":5,即嵌入SWF.如果禁用嵌入,它将不存在.

http://gdata.youtube.com/feeds/api/videos/video_id?v=2&alt=json-in-script