play()関数を使用して埋め込みYouTubeビデオを再生しています。これはすべてyoutubeapiを使用しています。以下は私が持っているコードです。ChromeとIEでは完全に機能しますが、Firefoxでは機能しません。
alert(typeof ytplayer);
このコードのビットは、ytplayerがどのタイプの「もの」であるかを示しています。ChromeとIEでは、オブジェクトが作成されます(ビデオにはobjectメソッドが埋め込まれています)。Firefoxでは未定義と表示されているため、問題が発生しています。
ここにテストWebサイトがあります:http://lostinawesome.blogspot.com.au/2012/04/test-post.html
再生ボタンまたは画像をクリックして、YouTubeオーディオを再生します。Firefoxでは、おそらくそれはあなたのために機能しません。
これをFFでプレイするためのアイデアはありますか?
私のコード:
javascript:
function onYouTubePlayerReady(playerId) {
var player = document.getElementById("ytplayer");
player.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
alert("New state " + newState);
}
function play() {
alert(typeof ytplayer);
if (ytplayer) {
ytplayer.playVideo();
}
}
html:
<object data="http://www.youtube.com/v/u8C-ZTQJIkU?enablejsapi=1&playerapiid=ytplayer&version=3" height="400" id="ytplayer" type="application/x-shockwave-flash" width="550"><param name="allowScriptAccess" value="always">
<param name="movie" value="http://www.youtube.com/v/u8C-ZTQJIkU?enablejsapi=1&playerapiid=ytplayer&version=3" >
</param>
<param name="allowScriptAccess" value="always">
</param>
</object>
<a href="javascript:void(0);" onclick="play();">Play</a>
作業コード:
var ytplayer = document.getElementById( "ytplayer");に変更する必要がありました。ytplayerはどこでも変数として宣言されていませんでしたが、何らかの理由でchromeとIEで動作しました。
function play() {
var ytplayer = document.getElementById("ytplayer");
alert(typeof ytplayer);
if (ytplayer) {
ytplayer.playVideo();
}
}