mirror of https://github.com/shuang854/Turtle
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
const videoPlayer = netflix.appContext.state.playerApp.getAPI().videoPlayer;
 | 
						|
const playerSessionId = videoPlayer.getAllPlayerSessionIds()[0];
 | 
						|
const netflixPlayer = videoPlayer.getVideoPlayerBySessionId(playerSessionId);
 | 
						|
const player = document.getElementsByTagName('video')[0];
 | 
						|
window.parent.postMessage('video ready', '*');
 | 
						|
 | 
						|
// Subscribe listeners on client-side actions
 | 
						|
player.addEventListener('play', (ev) => {
 | 
						|
  window.parent.postMessage({ type: 'play', time: player.currentTime }, '*');
 | 
						|
});
 | 
						|
player.addEventListener('pause', (ev) => {
 | 
						|
  window.parent.postMessage({ type: 'pause', time: player.currentTime }, '*');
 | 
						|
});
 | 
						|
 | 
						|
// Listen for syncing requests
 | 
						|
window.addEventListener('message', (ev) => {
 | 
						|
  let type = ev.data.type;
 | 
						|
 | 
						|
  // Handle status request event
 | 
						|
  if (ev.data.toString() === 'fetch current status') {
 | 
						|
    ev.ports[0].postMessage({ isPlaying: player.paused, time: player.currentTime });
 | 
						|
  }
 | 
						|
 | 
						|
  // Handle seeking event
 | 
						|
  if (type === 'seek') {
 | 
						|
    netflixPlayer.seek(Number(ev.data.currentTime * 1000)); // Netflix Player object is needed to seek
 | 
						|
  }
 | 
						|
 | 
						|
  // Handle playing event
 | 
						|
  if (type === 'playing') {
 | 
						|
    if (ev.data.playing && player.paused) {
 | 
						|
      player.play();
 | 
						|
    }
 | 
						|
    if (!ev.data.playing && !player.paused) {
 | 
						|
      player.pause();
 | 
						|
    }
 | 
						|
  }
 | 
						|
});
 | 
						|
 | 
						|
// Disable keyboard shortcuts
 | 
						|
window.addEventListener(
 | 
						|
  'keydown',
 | 
						|
  (e) => {
 | 
						|
    e.stopPropagation();
 | 
						|
  },
 | 
						|
  true
 | 
						|
);
 |