• 20-03-2013, 14:28:53
    #1
    Üyeliği durduruldu
            <script type="text/javascript">
    
            function updateHTML(elmId, value) {
              document.getElementById(elmId).innerHTML = value;
            }
    
            function setytplayerState(newState) {
              if(newState==3 || newState==-1)
              {
              	$('ld').show();
              }
              else
              {
              	$('ld').hide();
              }
            }
    
    
    
            function onYouTubePlayerReady(playerId) {
              ytplayer = document.getElementById("myytplayer");
              setInterval(updateytplayerInfo, 250);
              updateytplayerInfo();
              loadNewVideo('<?php echo $data; ?>', 0, "small");
              ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
            }
    
            function onytplayerStateChange(newState) {
              setytplayerState(newState);
    		  	if(newState == 0){
    				alert("done");
    			}
    		  
            }
    		
    		
    		
    		function minute(secVar0)
    		{
    	                         // The initial data, in seconds
    minVar = Math.floor(secVar0/60);  // The minutes
    secVar = Math.floor(secVar0 % 60);              // The balance of seconds
    
    		if(minVar <= 9) { minVar = "0"+minVar;}
    		if(secVar <= 9) { secVar = "0"+secVar;}
    		return minVar+":"+secVar;
    				}
            function updateytplayerInfo() {
            
              updateHTML("videoduration", minute(getDuration()));
              updateHTML("videotime", minute(getCurrentTime()));
              //updateHTML("startbytes", );
    		  	if ((ytplayer.getDuration()-1)<ytplayer.getCurrentTime()) ytplayer.seekTo(0, true);
             
              var sbyte=getStartBytes();
              var tbyte=getBytesTotal();
              var lbyte= getBytesLoaded();
              
              var l=Math.floor(400*lbyte/tbyte);
             
              //jQuery('loaded').style.width=l+"px";
              
              
              var c=getCurrentTime();
              var t=getDuration();
              
              slider.setValue(c/t);
            }
    
            // functions for the api calls
            function loadNewVideo(id, startSeconds) {
              if (ytplayer) {
                ytplayer.loadVideoById(id, parseInt(startSeconds));
              }
            }
    
            function cueNewVideo(id, startSeconds) {
              if (ytplayer) {
                ytplayer.cueVideoById(id, startSeconds);
              }
            }
    
            function play() {
              if (ytplayer) {
                ytplayer.playVideo();
                $('playpause').onclick=function(){pause()};
                $('playpauseimg').src='_img/stop.png';
              }
            }
    
            function pause() {
              if (ytplayer) {
                ytplayer.pauseVideo();
                $('playpause').onclick=function(){play()};
                $('playpauseimg').src='_img/play.png';
              }
            }
    
            function stop() {
              if (ytplayer) {
                ytplayer.stopVideo();
              }
            }
    
            function getPlayerState() {
              if (ytplayer) {
                return ytplayer.getPlayerState();
              }
            }
    
            function seekTo(seconds) {
              if (ytplayer) {
              var t=getDuration();
              var s;
              s=t*seconds;
                ytplayer.seekTo(s, true);
              }
            }
    
            function getBytesLoaded() {
              if (ytplayer) {
                return ytplayer.getVideoBytesLoaded();
              }
            }
    
            function getBytesTotal() {
              if (ytplayer) {
                return ytplayer.getVideoBytesTotal();
              }
            }
    
            function getCurrentTime() {
              if (ytplayer) {
                return ytplayer.getCurrentTime();
              }
            }
    
            function getDuration() {
              if (ytplayer) {
                return ytplayer.getDuration();
              }
            }
    
            function getStartBytes() {
              if (ytplayer) {
                return ytplayer.getVideoStartBytes();
              }
            }
    
            function mute() {
              if (ytplayer) {
                ytplayer.mute();
              }
            }
    
            function unMute() {
              if (ytplayer) {
                ytplayer.unMute();
              }
            }
            
            function getEmbedCode() {
              alert(ytplayer.getVideoEmbedCode());
            }
    
            function getVideoUrl() {
              alert(ytplayer.getVideoUrl());
            }
            
            function setVolume(newVolume) {
              if (ytplayer) {
                ytplayer.setVolume(newVolume);
              }
            }
    
            function getVolume() {
              if (ytplayer) {
                return ytplayer.getVolume();
              }
            }
    
            function clearVideo() {
              if (ytplayer) {
                ytplayer.clearVideo();
              }
            }
            
    		
    
    
        </script>


    Şeklinde bir kodum var. Sorunum şu video bittiği zaman , yeni youtube video id ile oynatmaya devam etmek istiyorum.

    Youtube api ile videonun bitiş event kodları var ama çalıştıramadım.

            function onytplayerStateChange(newState) {
              setytplayerState(newState);
    		  	if(newState == 0){
    				alert("done");
    			}
    		  
            }
    örneğin bu.

    daha önce bu şekilde çalışma yapmış arkadaşlar yardımcı olursa sevinirim.


    ilgili google aramaları : https://www.google.com.tr/search?q=y...+api+video+end
  • 20-03-2013, 22:38:54
    #2
    Misafir
    bitince alert("done"); çalışıyor mu?
  • 21-03-2013, 20:57:21
    #3
    Üyeliği durduruldu
    yok oda çalışmıyor. tüm bitiş eventlerini denedim fakat hiçbiri çalışmadı.
  • 21-03-2013, 22:01:22
    #4
    Misafir
    object embed api kullanıyorsunuz...
    iframe api kullanırsanız sorunu çözebilirsiniz...

    ayrıca çok zor bulunan bir şeydir...
    bilirim çok kafa ağrıttım buna...
    şu an satışta olan sistemim için playlist yazıyorum...


    var done = false;
    function onPlayerStateChange(event) {
    
    		if (event.data == YT.PlayerState.ENDED && !done) {
    			// sıradaki şarkıya geçişi buradan tetikleyin...
            }
    		
    		if (event.data == YT.PlayerState.PLAYING) {
    			// şarkı oynamaya başlayınca yapılacakları buradan tetikleyin
    		}
    		
    		if (event.data == YT.PlayerState.PAUSED) {
    			// şarkı duraklatıldığında yapılacakları buradan tetikleyin
    		}
    		
    		if (event.data == YT.PlayerState.BUFFERING) {
    			// müzik buffer olurken yüklenmek için duraklatıldığında yapılacak olanları buradan tetikleyin...
    			// yani yükleniyor tarzı bişey çıkartmak için...
    		}
    	
    		if(event.data == YT.PlayerState.onPlayerError){
    			// müziği bulamazsa olacakları buradan tetikleyin...
    		
    		}
  • 22-03-2013, 13:55:06
    #5
    Üyeliği durduruldu
    Evet sanırım yapıyı değiştirmem gerek. Bende bayadır uğraşıyorum.