4

YouTube JavaScript API ( http://code.google.com/apis/youtube/js_api_reference.html ) を使用して、ユーザーが自分のアプリで作成したコンテンツにビデオを埋め込むことができるようにしようとしています。ビデオへの埋め込みが許可されていない場合を検出して処理できることを除いて、すべてが機能しています。

現在、プレーヤーは許可されていない動画のサムネイルを読み込んで表示しますが、ユーザーが再生しようとするとエラーが発生します。ユーザーがコンテンツを保存/送信する前にビデオを再生しない可能性があるため、これは悪いことです。動画の埋め込みが許可されていないことを事前に検出し、ユーザーに役立つメッセージを表示したいと考えています。

私が見ることができる唯一の解決策は、実際に(プログラムで)再生し、その時点で発生したエラーを処理することです。

既存の回避策:

  1. 埋め込みプレーヤー (embedSWF)
  2. onYouTubePlayerReady(): onError onStateChange イベント リスナーを追加します。
  3. onStateChange(newState): ビデオの読み込みが完了したら、再生を試みます。
    例 if (newState == 5 /* CUED */) { player.mute(); player.playVideo(); player.stopVideo(); player.unMute(); }
  4. onError(error): onStateChange で動画の再生に失敗した場合、ここでエラーを受け取ります。

より良い方法はありますか?

ありがとう!
-ロブ

4

3 に答える 3

6

動画エントリを埋め込む前に、その動画エントリの JSON フィードを取得して、埋め込み SWF である "yt$format":5 が存在するかどうかを確認できます。埋め込みが無効になっている場合は表示されません。

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

于 2009-06-03T04:50:23.777 に答える
0

これが直接の質問ではないことはわかっていますが、PHP を使用している人がこの問題に出くわした場合に備えてgetNoEmbed()Zend_Gdata_YouTube_VideoEntry.

ドキュメントから取得:

戻り値が のインスタンスである場合Zend_Gdata_YouTube_Extension_NoEmbed、この動画は埋め込むことができません。

于 2012-01-29T16:11:46.497 に答える