今日発見した重大な変更を示すために、以下のリンクで見つけることができる基本的な JS API サンプル ページを取り上げ、videoId パラメータをコメントアウトしました。
初期化エラーを示す YT サンプル コード: http://www.multitask123.com/fmgem/YT_Sample2.htm
上記の videoId パラメータの削除により、プレーヤは、埋め込みプレーヤに次のエラー メッセージを表示/初期化します。「エラーが発生しました。後で試してください。」これは、今日の午後まで当てはまりませんでした。
過去 3 か月間、次のように onYouTubePlayerAPIReady を呼び出すことができましたが、エラー メッセージは表示されませんでした。
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
//videoId: 'JW5meKfy3fY', - COMMENTED OUT INTENTIONALLY! HARD REQUIREMENT!
events: {
'onReady': onPlayerReady,
'onError': onPlayerError,
'onStateChange': onPlayerStateChange
}
});
}
エラーは初期化中に onPlayerError イベント ハンドラーによってキャッチされ、エラーは「evt」パラメーターのデータ属性で発生します。そのため、初期化時に onPlayerError(evt) が呼び出され、evt.data = 2 になります。この値は、「リクエストに無効なパラメータ値が含まれています」と文書化されています。これは、API が videoId を期待していることは明らかです。
あまり詳細には触れたくありませんが、ブラウザ間の初期化に関する問題が多数あるため、プレーヤーの初期化が適切に機能するように数え切れないほどの時間を費やしました。何かを再生するために実際に必要になるまで、プレーヤーを非表示にする必要があります。
どのブラウザが原因かは忘れましたが、ビデオが再生されていないにもかかわらず、そのうちの 1 つが実際にプレーヤーを表示するように強制します。
埋め込みプレーヤーは非同期で読み込まれるため、遅延読み込み/JIT できないことがわかりました。ユーザーが実際にビデオを表示したい場合や、プレーヤーなどのプレイリストを読み込む URL の他のパラメーターが含まれている場合にのみ読み込みを試みると、プレーヤーを初期化することも、ビデオを再生するように要求することもできないため、ボークします。
つまり、要点は、ページの読み込み時にプレーヤーを初期化する必要がありますが、videoId パラメーターを使用しないでください。これは、状況の 90% で何が再生されるのかまったくわからないためです。別の API への別の非同期呼び出しの結果。これは、videoid で初期化するソリューションが受け入れられないためです。
YouTube API は素晴らしく、とても気に入っているので、http://www.fmgem.comの開発に 18 か月を費やしましたが、この重大な変更により、ベータ ユーザーが私のアプリに対して持つ第一印象が台無しになっています。したがって、YT API チームが実際にこれを監視している場合は、元に戻してください。上に砂糖をかけてください。:))
ロード時に同じ関数の wmode 属性を使用して、数週間前に同様のことが起こりました。
//wmode: 'opaque' //--- Chrome で厄介なバグを引き起こします - そして、不透明を透明に変更できたので、大したことはありませんが、これにはアーキテクチャ全体を見直して、apx 9 の異なる非同期使用を体系的に処理する必要があります-繰り返しますが、すべてクロスブラウザーの癖がありました。
そのため、反応する余裕はなく、http: //www.fmgem.com のライブ コードに「くしゃみをする赤ちゃんパンダ」の videoId を挿入することを余儀なくされましたが、これは非常に専門的ではないように見えます。 YT チームがこれを重大な変更として実際に認識し、以前の動作に戻さない限り、アーキテクチャ全体を確認できます。
これは 2013 年 2 月 27 日の午後に一部のユーザーによって検出され、YouTube の開発者が SO を監視している Google グループを読みました。
回答、解決策、ガイダンス、または確認をいただければ幸いです。
ありがとう!!