Control Youtube Video Player with Javascript / Jquery

How to Control YouTube's Video Player with JavaScript

How to Control YouTube's Video Player with JavaScript

  • Player Initialization

    var player;

    function onYouTubeIframeAPIReady() {
    player = new YT.Player('video-placeholder', {
    width: 600,
    height: 400,
    videoId: 'Xa0Q0J5tOP0',
    playerVars: {
    color: 'white',
    playlist: 'taJ60kskkns,FG0fTKAqZ5g'
    },
    events: {
    onReady: initialize
    }
    });
    }

    function initialize(){

    // Update the controls on load
    updateTimerDisplay();
    updateProgressBar();

    // Clear any old interval.
    clearInterval(time_update_interval);

    // Start interval to update elapsed time display and
    // the elapsed part of the progress bar every second.
    time_update_interval = setInterval(function () {
    updateTimerDisplay();
    updateProgressBar();
    }, 1000)

    }
  • Duration

    0:00 / 0:00

    // This function is called by initialize()
    function updateTimerDisplay(){
    // Update current time text display.
    $('#current-time').text(formatTime( player.getCurrentTime() ));
    $('#duration').text(formatTime( player.getDuration() ));
    }

    function formatTime(time){
    time = Math.round(time);

    var minutes = Math.floor(time / 60),
    seconds = time - minutes * 60;

    seconds = seconds < 10 ? '0' + seconds : seconds;

    return minutes + ":" + seconds;
    }
  • Progress Bar

    $('#progress-bar').on('mouseup touchend', function (e) {

    // Calculate the new time for the video.
    // new time in seconds = total duration in seconds * ( value of range input / 100 )
    var newTime = player.getDuration() * (e.target.value / 100);

    // Skip video to new time.
    player.seekTo(newTime);

    });

    // This function is called by initialize()
    function updateProgressBar(){
    // Update the value of our progress bar accordingly.
    $('#progress-bar').val((player.getCurrentTime() / player.getDuration()) * 100);
    }
  • Play

    play_arrow
    $('#play').on('click', function () {

    player.playVideo();

    });
  • Pause

    pause
    $('#pause').on('click', function () {

    player.pauseVideo();

    });
  • Mute / Unmute

    volume_up
    $('#mute-toggle').on('click', function() {
    var mute_toggle = $(this);

    if(player.isMuted()){
    player.unMute();
    mute_toggle.text('volume_up');
    }
    else{
    player.mute();
    mute_toggle.text('volume_off');
    }
    });
  • Set volume

    $('#volume-input').on('change', function () {
    player.setVolume($(this).val());
    });

    // To get the current volume of the player use this method:
    // player.getVolume()
  • Speed

    $('#speed').on('change', function () {
    player.setPlaybackRate($(this).val());
    });

    // To get the current playback rate for a video use this method:
    // player.getPlaybackRate()

    // To get all available playback rates for the current video use:
    // player.getAvailablePlaybackRates()
  • Quality

    $('#quality').on('change', function () {
    player.setPlaybackQuality($(this).val());
    });

    // To get the actual video quality of the running video use this method:
    // player.getPlaybackQuality()

    // To get a list of the available quality formats for a video use:
    // player.getAvailableQualityLevels()
  • Playlist Next

    fast_forward
    $('#next').on('click', function () {
    player.nextVideo()
    });
  • Playlist Previous

    fast_rewind
    $('#prev').on('click', function () {
    player.previousVideo()
    });
  • Dynamically Queue Video

    $('.thumbnail').on('click', function () {

    var url = $(this).attr('data-video-id');

    player.cueVideoById(url);

    });

Comments

Popular posts from this blog

b:skin and b:template-skin Tags - Blogger Tags References

b:widget Tag - Blogger Tags Reference

Google News Setup Complete Guide