ក្រៅ​ពី​តំរូវ​អោយ​ប្រដាប់​មើល​វីដេអូ​របស់​ប្រព័ន្ធ YouTube ឬ Facebook លេង​វីដេអូ​តែ​មួយ​រឿង​ដាច់​ៗ​ពី​គ្នា​ យើង​ក៏​អាច​តំរូវ​អោយ​ប្រដាប់មើល​វីដេអូ​ទាំងនោះ លេង​វីដេអូម្តង​​មួយ​ខ្សែ​ជាប់​គ្នា​តែ​ម្តង​ក៏​​បាន​ដែរ​។ ឧទារណ៍ ដូច​ជា​រឿង​ភាគ​​ជា​ដើម​ ដែល​មាន​វីដេអូ​ជា​ច្រើន​ភាគ​ជាប់​ៗ​រហូត​ដល់​រាប់​រយ​ឯណោះ​ក៏​មានដែរ​។

 

ដើម្បី​​សំរេច​គោល​បំណង​នេះ​បាន យើង​ចាំ​បាច់ត្រូវ​​បង្កើត​កំរង​វីដេ​អូ​​មួយ (playlist) ដែល​នៅ​ក្នុង​នោះ​អាច​មាន​វីដេអូ​មាន​ចំនួន​ប៉ុន្មាន​ភាគ​ក៏​បាន​ដែរ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

 

<style>
/*កូដ​ខាង​ក្រោម​នេះ គឺ​ជា​ css ចាំបាច់សំរាប់​រចនា​ menu នៅខាង​ក្រោម
ដែលនៅ​ក្នុង​នោះមាន​ពក្យ​ថា «លេង» «សំរាក» និង «ឈប់​»។*/
ul{
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
}
 
li {
  float: left;
}
 
li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
 
li a:hover{
  background-color: #111;
  cursor:pointer;
}
</style>

 

<!--ធាតុ div ទាំងពីរខាង​ក្រោម​នេះ គឺជា​ធាតុ​ចាំបាច់​​សំរាប់​បង្កើត​ប្រដាប់​ចាក់វីដេអូ YouTube ថ្មីមួយ​ 
ដែល​មាន​​អត្តសញ្ញាណជា​ «player»។-->
<div style="position:relative;padding-top:56.25%;">
  <div id="player" style="position:absolute;top:0;left:0;"></div>
</div>
 
<!--បណ្តា​ធាតុ​ខាង​ក្រោម​នេះ គឺ​ជា​ការបង្កើត​ menu សំរាប់​ ចាក់ សំរាក និង បញ្ឍប់​វីដេអូ ។-->
<ul>
  <li><a onclick="play()">លេង</a></li>
  <li><a onclick="pause()">សំរាក</a></li>
  <li><a onclick="stop()">ឈប់</a></li>
</ul>
 
<script>
  //ការបង្កើត​កំរង​វីដេអូ​មួយ​ ដែល​នៅ​ក្នុង​នោះ​មាន​វីដេអូ​ចំនួន​ ៥ រឿង
  var playlist = [];
  playlist[0] = 'F9NkHE5W4Hc';
  playlist[1] = 'vpmbVRQazqw';
  playlist[2] = 'B2oPVqDHR3g';
  playlist[3] = 'xO2IbMZzKz0';
  playlist[4] = 'kZRA7ULqLZI';
 
  /*កូដ​​ខាង​ក្រោមនេះ គឺ​ជាការ​ចំលង​យក​ក្បួន​ខ្នាត​សំខាន់​ៗ​នៅ​
  នៅ​ក្នុង​ប្រព័ន្ធ​ YouTube យកមកប្រើ​ទាក់ទង​នឹង​ប្រដាប់​ចាក់​វីដេអូ*/
  var tag = document.createElement('script');
  tag.src = "https://www.youtube.com/iframe_api";
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
 
  /*កូដ​ខាង​ក្រោម​នេះ គឺ​ជាការយក្បួន​ខ្នាត​​នៅ​ក្នុង​ប្រព័ន្ធ​ YouTube
  យក​មក​បង្កើត​ប្រដាប់​ចាក់​វីដេអូ​ថ្មី​មួយ​ដាក់​ចូល​ទៅ​ក្នុង​ធាតុ​ដែល​មាន​
  អត្តសញ្ញាណ​ជា «player» នៅ​ខាង​លើ​។*/
  var player;
  function onYouTubeIframeAPIReady(){
    player = new YT.Player('player', {
      height: '100%',
      width: '100%',
      videoId: 'M7lc1UVf-VE',
      playerVars: {
        controls: 1
      },
      events: {
        /*ការភ្ជាប់​ហេតុការណ៍ «onReady» ​ទៅ​នឹងក្បួន​ «onPlayerReady» ។ ហេតុការណ៍​នេះ​កើតឡើង​
        នៅ​​ពេល​ដែល​ប្រដាប់​មើល​វីដេអូ​ឈ្មោះ​​ player ​ត្រូវ​បាន​បង្កើត​ឡើង​​រូចរាល់ ។*/
        'onReady': onPlayerReady,
        /*ការតភ្ចាប់​ហេតុការណ៍ «onStateChange» ទៅ​នឹង​ក្បួន​ «onPlayerStateChange» ។ 
        ហេតុការណ៍​កើតឡើង​​ពី​ការផ្លាស់​សភាព​លក្ខណៈ​​របស់​ប្រដាប់​មើល​វីដេអូ​ឈ្មោះ player ។*/
        'onStateChange': onPlayerStateChange
      }
    });
  }
  /*ក្បួន «onPlayerReady» នេះ​នឹងត្រូវ​យក​ទៅ​ប្រើ​ដោយ​ស្វ័យប្រវត្តិ 
  នៅ​ពេល​ដែល​ប្រដាប់​មើល​វីដេអូ​ឈ្មោះ player ត្រូវ​បាន​បង្កើត​ឡើង​រួច​រាល់​។*/
  function onPlayerReady(event) {
    player.cuePlaylist(playlist);
  }
 
  /*ក្បួន «onPlayerStateChange»​ ដែល​នឹង​ត្រូវ​យកទៅ​ប្រើជា​ស្វ័យ​ប្រវត្តិ 
​​  នៅ​ពេល​ដែល​​ហេតុការណ៍ «onStateChange»​ កើត​មាន​ឡើង*/
  function onPlayerStateChange(event) {
    if(event.data == YT.PlayerState.PLAYING){
      /*បើ​ប្រដាប់មើលវីដេអូ​មាន​មាន​សភាព​ជា​កំពុង​លេង
      បញ្ជា​នៅខាង​ក្រោម​នេះ​នឹង​យក​ទៅ​អនុវត្ត​។*/
      $('.main-outer').css("background-color","black");
    }else if(event.data == YT.PlayerState.PAUSED){
      /*បើ​ប្រដាប់មើលវីដេអូ​ស្ថិត​ក្នុង​សភាព​សំរាក
      បញ្ជា​​នៅខាង​ក្រោម​នេះ​នឹង​យក​ទៅ​អនុវត្ត​។*/
      $('.main-outer').css("background-color","#ffffff");
    }else if(event.data == YT.PlayerState.ENDED){
      /*បើ​ប្រដាប់មើលវីដេអូ​មាន​មាន​សភាព​ជា​លេង​ចប់
      បញ្ជា​​នៅខាង​ក្រោម​នេះ​នឹង​យក​ទៅ​អនុវត្ត​។*/
      $('.main-outer').css("background-color","#ffffff");
    }
  }
 
  /*ក្បួន​ទាំងបី​ខាង​ក្រោម​នេះ ប្រើ​សំរាប់​ឆ្លើយ​តប​
  ទៅ​នឹង​ការចុច​ menu ដែលជា​​ពាក្យថា «លេង» «សំរាក» និង «ឈប់» ។*/
  function stop(){
    player.stopVideo();
  }
 
  function play(){
    player.playVideo();
  }
 
  function pause(){
    player.pauseVideo();
  }
</script>

 

ដំណរភ្ជាប់​ទៅ​កាន់​ប្រដាប់ចាក់​វីដេអូ​បង្កើត​ឡើង​ដោយ​កូដ​ខាង​លើៈ

https://www.khmerweb.app/2019/03/youtube_23.html

 

ចាប់​ពី​បន្ទាត់​លេខ 16 រហូត​ដល់បន្ទាត់​លេខ 21 គឺ​ជា​ការបង្កើត​កំរង​នៃ​​អត្តសញ្ញាណ​វីដេអូ​នៅ​ក្នុង​ប្រព័ន្ធ​ YouTube ។ កំរង​វីដេអូ​នោះ​មាន​ឈ្មោះ​ថា «playlist» និង​ដែល​មានអត្តសញ្ញាណ​វីដេអូ​ចំនួន 5 ខុស​ៗ​គ្នា​នៅ​ក្នុង​នោះ​។

 

នៅ​លើ​បន្ទាត់​លេខ 45 ការសរសេរ​ថា 'onReady': onPlayerReady គឺ​ជា​ការភ្ជាប់​ហេតុការណ៍​ឈ្មោះ «onReady» ទៅ​នឹង​ក្បួន​​មួយ​មាន​ឈ្មោះ​ថា «onPlayerReady» ។ ដូចនេះ​នៅ​ពេល​ដែល​ហេតុការណ៍ «onReady» កើត​មាន​ឡើង​នៅ​ពេល​ដែល​ប្រដាប់​មើល​វីដេអួ​ឈ្មោះ player ត្រូវ​បាន​បង្កើត​រួច​ស្រេច​ប៉ាច់ ក្បួន​ឈ្មោះ «onPlayerReady» នេះ​នឹង​ត្រូវ​យក​ទៅ​ប្រើ​ជា​ស្វ័យប្រវត្តិ​។

 

នៅ​លើ​បន្ទាត់​លេខ 54 គឺ​ជា​ការបង្កើត​ក្បួន​មួយ​មាន​ឈ្មោះ​ថា «onPlayerReady» ដែល​នឹង​ត្រូវ​យក​ទៅ​ប្រើ​ជា​ស្វ័យប្រវត្តិ​នៅ​ពេល​ដែល​ហេតុការណ៍​ «onReady» កើត​មាន​ឡើង​ ដែល​នឹង​បណ្តាល​អោយកំរង​វិដេអូ​មាន​ឈ្មោះ​ថា playlist ត្រូវ​យក​ទៅ​ដាក់​ក្នុង​ប្រដាប់​មើល​វីដេអូ YouTube មាន​ឈ្មោះ​ថា player ៕