ក្រៅ​ពី​តំរូវ​អោយ​ប្រដាប់​មើល​វីដេអូ​របស់​ប្រព័ន្ធ 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>

 

<script>
//បង្កើត​ឈ្មោះ «player» មួយ​ទុក​សំរាប់ភ្ជាប់​​ទៅ​នឹង​វត្ថុ​ដែល​ជា​ប្រដាប់​មើលវីដេអូ
var player;
 
//ការបង្កើត​កំរង​វីដេអូ​មួយ​ ដែល​នៅ​ក្នុង​នោះ​មាន​វីដេអូ​ចំនួន​ ៥ រឿង
var playlist = [];
playlist[0] = '2270255849679574';
playlist[1] = '996743840714965';
playlist[2] = '2512912775405277';
playlist[3] = '1026328170892490';
playlist[4] = '2176928592637027';
 
//បង្កើតវត្ថុ​ដែល​ជា​​លេខរៀង​វីដេអូ​​ដើម​គេ​​នៅ​ក្នុង​កំរង​វីដេអូ playlist
var index = 0;
 
/*បង្កើត​តំណរ​ link ទៅ​កាន់​វីដេអូ​​ដែល​មាន​អត្តសញ្ញាណ
​ជា​ធាតុ​មាន​លេខរៀង 0 នៅ​ក្នុង​កំរង​វីដេ playlist ខាង​លើ*/
var videoUrl = "https://www.facebook.com/video.php?v=" + playlist[index];
 
/* ទាញ​យក​ក្បួន​ខ្នាត​ចាំបាច់​ពី​ប្រព័ន្ធ Facebook 
ទាក់ទងនឹងប្រដាប់មើល​វីដេអូ​ */
window.fbAsyncInit = function() {
  FB.init({
    appId: '{your-app-id}',
    xfbml      : true,
    version    : 'v3.2'
  });
     
/* បង្កើត​​ប្រដាប់​មើល​វីដេអូ Facebook មួយ​ភ្ជាប់​ទៅ​នឹង​​​ឈ្មោះ​ «player» នៅ​ខាង​លើ​
សំរាប់​ដាក់​ក្នុង​ធាតុ div ដែល​មាន​ថ្នាក់​ជា «fb-video» នៅ​ខាង​ក្រោម​។ */
  FB.Event.subscribe('xfbml.ready', function(msg) {
    if(msg.type === 'video'){
      player = msg.instance;
 
      //ភ្ជាប់​ហេតុការណ៍ «startedPlaying» ទៅ​នឹង​ក្បួន​មួយ
      player.subscribe('startedPlaying', function(e) {
        //ការធ្វើ​អោយ​ផ្ទៃ​របស់​ browser ទៅ​ជា​ខ្មៅ
        $('.main-outer').css("background-color","black");
      });       
 
      //ភ្ជាប់​ហេតុការណ៍ «paused» ទៅ​នឹង​ក្បួន​មួយ​ទៀត
      player.subscribe('paused', function(e) {
        //ការធ្វើ​អោយ​ផ្ទៃ​របស់​ browser ទៅ​ជា​ស​វិញ
        $('.main-outer').css("background-color","white");
      }); 
 
      //ភ្ជាប់​ហេតុការណ៍ «finishedPlaying» ទៅ​នឹង​ក្បួន​មួយ​ទៀត
      player.subscribe('finishedPlaying', function(e) {
        //ការធ្វើ​អោយ​ផ្ទៃ​របស់​ browser ទៅ​ជា​ស​វិញ
        $('.main-outer').css("background-color","white");
 
        /*បង្កើន​តំលៃ​វត្ថុ index អោយ​ធំ​ជាង​មុន 1 ដើម្បី​អោយ​ស្មើ​នឹង​
        លេខ​រៀង​វីដេអូ​បន្ទាប់​មក​ទៀត​នៅ​ក្នុង​​កំរង​វីដេអូ playlist */
        index++;
         
        /*បើសិន​ជា​តំលៃ​លេខ index ជាង​លេខ​រៀង​វីដេអូ​ចុង​ក្រោយ​គេ
        គឺ​តំរូវ​អោយ​វា​មានតំលៃ​ស្មើ​នឹង​លេខរៀង​វីដេអូ​ខាង​ដើម​គេ​វិញ*/
        if(index>playlist.length-1){
          index = 0;
        }
 
        /*បង្កើត​តំណរ​ link ទៅ​កាន់​វីដេអូ​​ដែល​មាន​អត្តសញ្ញាណ​ជា​ធាតុ​
        មាន​លេខរៀងស្មើនឹងតំលៃរបស់​ index នៅ​ក្នុង​កំរង​វីដេ playlist ខាង​លើ*/
        videoUrl = "https://www.facebook.com/video.php?v="+playlist[index];
 
        /*តំរូវ​អោយ​ប្រដាប់​មើល​វិដេអូ Facebook លេង​វីដអូ
        ​បន្ទាប់​មកទៀត​នៅ​ក្នុង​កំរង​វីដេអូ​ឈ្មោះ playlist */
        $(".fb-video").attr("data-href",videoUrl);
        $(".fb-video").attr("data-autoplay","true");
        FB.XFBML.parse();
 
      }); 
 
    }
  });
};
</script>
 
<!-- ទាញ​យក​ក្បួន​ខ្នាត​ចាំបាច់​ពី​ប្រព័ន្ធ Facebook បន្ថែមទៀត​ទាក់ទង​នឹង​ប្រដាប់​មើល​វីដេអូ​ -->
<div id="fb-root"></div>
<script async defer src="https://connect.facebook.net/en_US/sdk.js"></script>
 
<!-- បណ្តា​ធាតុ div ចាំបាច់​សំរាប់​ដាក់​​ប្រដាប់​មើល​វីដេអូ Facebook -->
<div class="fb-player">
<div
  class="fb-video"
  data-href="https://www.facebook.com/video.php?v=10153231379946729"
  data-width="500"
  data-autoplay="false"
  data-allowfullscreen="true"></div>
</div>
 
<!-- បណ្តា​ធាតុ​ខាង​ក្រោម​នេះ គឺ​ជា​ការបង្កើត​ menu សំរាប់​ ចាក់ សំរាក និង បើក​​សំលេង​​វីដេអូ។​ -->
<ul>
  <li><a onclick="play()">លេង</a></li>
  <li><a onclick="pause()">សំរាក</a></li>
  <li><a onclick="unmute()">បើក​សំលេង</a></li>
</ul>
 
<script >
// កូដ​ចាំបាច់​សំរាប់​ធ្វើ​អោយ​ទំហំប្រដាប់​មើល​វិដេអូ​​មាន​លក្ខណៈ «responsive»
var playerWidth = $('.fb-player').css('width');
$(".fb-video").attr("data-width",playerWidth);
 
//តំរូវ​អោយ​ប្រដាប់​មើល​វីដេអួ Facebook លេង​វីដេ​មាន​លេខរៀង​ 0 នៅ​ក្នុង​កំរង​វីដេអូ playlist
$(".fb-video").attr("data-href",videoUrl);
 
/* ក្បួន​ទាំងបី​ខាង​ក្រោម​នេះ ប្រើ​សំរាប់​ឆ្លើយ​តប​ទៅ​នឹង​ការចុច​ menu 
ដែលជា​​ពាក្យថា «លេង» «សំរាក» និង «បិទ​សំលេង» ។ */
function unmute(){
​  player.unmute();
}
 
function play(){
  player.play();
}
 
function pause()
  player.pause();
}
</script>

 

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

https://www.khmerweb.app/2019/03/blog-post_23.html

 

ជាលទ្ធផល រាល់​លើក​នៅពេល​ដែល​ប្រដាប់​មើល​វីដេអូ Facebook លេង​ចប់​វីដេអូ​មួយ​រឿង វា​នឹង​ចាប់​ផ្តើម​លេង​វីដេអូ​ថ្មី​បន្ទាប់​មក​ទៀត​ជា​ស្វ័យ​ប្រវត្តិ​។ ហើយ​បើ​វា​លេងចប់​​ដល់​​វីដេអូ​​ចុង​ក្រោយ​គេ​ វា​នឹង​ចាប់​ផ្តើម​លេង​​វីដេអូ​ខាង​ដើម​គេ​សារជាថ្មី​ម្តង​ទៀត​។

 

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

 

នៅលើ​បន្ទាត់​លេខ 14 គឺ​ជាការបង្កើត​វត្ថុ​​មាន​ឈ្មោះ​ថា​ index តំណាង​អោយ​លេខរៀង​នៃ​អត្តសញ្ញាណ​​វិដេអូ​នៅ​​ក្នុង​កំរង​ playlist ។ តំលៃ​ដំបូង​បំផុត​របស់​​វត្ថុ​ index នោះ​គឹ​ជា​លេខ 0 ដែល​លេខរៀង​នៅ​ខាង​ដើម​គេ​របស់​អត្តសញ្ញាណ​វីដេអូ​នៅ​ក្នុង​កំរង playlist ។

 

នៅ​លើ​បន្ទាត់​លេខ 18 គឺ​ជាការបង្កើត​តំណភ្ជាប់ទៅកាន់​វីដេអូ​នៅ​ក្នុង​ប្រព័ន្ធ Facebook ដែល​មាន​អត្តសញ្ញាណ​មាន​លេខរៀង​​នៅ​ខាង​ដើម​កំរង playlist ។

 

នៅ​លើ​បន្ទាត់​លេខ 106 គឺ​ជា​ការតំរូវ​អោយ​ប្រដាប់​មើល​វីដេអូ Facebook លេង​វីដេអូ​ដែល​មាន​អត្តសញ្ញាណ​នៅ​ខាង​ដើម​កំរង​ playlist មុន​គេ​។ ​ដំណរភ្ជាប់​ទៅ​កាន់​វីដេអូ​នោះ​គឺ​​ជា​តំលៃ​របស់​វត្ថុ​ឈ្មោះ videoUrl ។

 

ជាលទ្ធផល​ ដូច​យើង​បានដឹង​រួច​មក​ហើយ​ថា នៅ​ពេលដែល​ប្រដាប់​មើល​វីដេអូ Facebook លេង​ចប់​វីដេអូ​មួយ​រឿង​ៗ​ វា​តែង​តែ​បង្កើតនូវ​​ហេតុការណ៍​​មួយមាន​ឈ្មោះ​ថា «finishedPlaying» ដែល​ជា​ប្រការ​ធ្វើអោយ​​ក្បួន​អត់​ឈ្មោះ​មួយ​ដែល​ត្រូវបាន​តភ្ជាប់​ជាមួយ​នឹង​ហេតុការណ៍នេះ​ ត្រូវ​យក​ទៅ​អនុវត្ត​ជា​ស្វ័ប្រវត្តិ​​ ដូច​ជា​ការសរសរ​នៅ​លើ​បន្ទាត់​លេខ 48 នោះ​ស្រាប់។

 

ហើយ​នៅ​ពេល​ដែល​ក្បួន​នោះ​ត្រូវ​យក​ទៅអនុវត្តជា​ស្វ័យប្រវត្តិ ផ្ទៃ​របស់​ browser នឹង​ប្រែក្លាយ​ជា​ស វត្ថុ​ឈ្មោះ index កើន​តំលៃ​ធំ​ជាង​មុន​មួយ ដូច​ជា​ការសរសេរ​នៅ​លើ​បន្ទាត់​លេខ 54 ។ ជាមួយ​គ្នា​នេះ តំលៃ​របស់​វត្ថុ​ឈ្មោះ​ index ក៏ត្រូវ​​ផ្ទៀងផ្ទាត់​ពិនិត្យ​មើល​ថាតើ​​វា​ធំ​ជាង​តំលៃ​រប់ស​លេខរៀង​អត្តសញ្ញាណ​វីដេអូចុង​ក្រោយគេ​​នៅ​ក្នុង​កំរង playlist ដែរ​ឬទេ បើ​ធំ​ជាង តំលៃ​របស់​វត្ថុ index នោះ​នឹង​ត្រូវ​ប្តូរ​អោយ​ស្មើ​រនឹង​តំលៃ​លេខរៀង​នៅ​ខាង​ដើម​កំរង playlist វិញ គឺ​ស្មើ​សូន្យ ដូចជា​ការ​សរសេរ​នៅ​លើ​បន្ទាត់​​លេខ 58 និង 59 នោះ​ស្រាប់​។

 

បន្ទាប់​មក​ទៀត វត្ថុ​ឈ្មោះ videoUrl នឹង​ត្រូវ​ប្តូរ​តំលៃ​របស់​វា​អោយស្មើ​​រនឹង​តំណរភ្ជាប់​ទៅ​កាន់​វីដេអូ​បន្ទាប់​មក​ទៀត​ ដែល​អត្តសញ្ញាណ​របស់​វា​មាន​នៅ​ក្នុង​កំរង​ playlist ដូច​ជា​ការសរសេរ​នៅ​លើ​បន្ទាត់​លេខ 64 ។

 

ចុង​ក្រោយ​បង្អស់ វីដេអូ​នៅ​ក្នង​ប្រដាប់​មើល​វីដេអូ Facebook នឹង​ត្រូវ​ជំនួស​ដោយ​វីដេអូ​ថ្មី​ដែល​មាន​អត្តសញ្ញាណ​ជា​​លេខរៀង​​បន្ទាប់​ពី​លេខរៀង​នៃ​វីដេអូ​មុន​ ដូច​ជា​ការសរសេរ​នៅ​បន្ទាត់​លេខ 68, 69 និង 70 ៕