2014-10-12 128 views
0

我試圖讓我的YouTube視頻api幀在播放後淡出,但無法使其工作。它工作了一段時間,但我一定已經做了一些腳本來搞砸了。Youtube視頻結束淡出

我試過document.getElementById("video").style.display = "none";也是,並且不起作用。我真的想讓它淡出。

<div id="player"></div> 

<script> 
var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

var player; 

function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '480', 
     width: '853', 
     videoId: '7u-liW-xRE4', 
     playerVars: { 
     'autoplay': 1, 
     'showinfo': 0, 
     'controls': 0, 
     'rel' : 0 

    } 
    }); 

} 



function onPlayerReady(event) { 
    event.target.playVideo(); 
} 

var done = false; 

function onPlayerStateChange(event) {   
    if(event.data === YT.PlayerState.ENDED) {   
     stopVideo(); 
    } 
} 

function stopVideo() { 
    player.stopVideo(); 
    document.getElementById("video").fadeOut(); 
} 
</script> 

回答

0

你在找什麼是視頻結束時由YT Api發送的事件。現在您正在發佈命令來結束視頻。這是兩件不同的事情。試試這個:

function onPlayerStateChange(event) { 

    if (event.data == YT.PlayerState.PLAYING) { 

     console.log('awesome video playing');  

    } 
    if (event.data == YT.PlayerState.ENDED) { 

     jQuery('your element').fadeTo('fast', 0).hide(); 

    } 
} 

我建議你不要在你的代碼中混合使用javascript和jquery樣式,因爲這可能會讓人困惑。

+0

因此,我刪除下面的所有內容onYouTubeIframeAPIReady()並放置你所說的內容?我在「真棒視頻播放」中放入了什麼? – 2014-10-12 13:59:59

+0

呃,沒有。 onPlayerReady(event)不會干擾我所說的。這是您的自動播放功能。 你想要的是與之無關的東西。 您可以在onPLayerReady函數中單獨使用onPLayerStateChange(event)。 但是真正簡單的方法是在https://developers.google.com/youtube/iframe_api_reference?hl=nl複製功能代碼然後在需要的地方更改。 – 2014-10-12 14:03:12

+0

對不起,但我不明白。我保留我已經擁有的代碼並將你的東西放在底部?我需要播放狀態嗎? – 2014-10-12 14:10:51

相關問題