Advertisement
Guest User

Untitled

a guest
May 25th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.97 KB | None | 0 0
  1. ///////////////////////////////
  2. /*
  3.  
  4.     Clientside YouTube api
  5.     Smart Like My Shoe
  6.     2/4/2018
  7.     4:20 AM
  8. */
  9.  
  10. RPGM.YouTube = {
  11.    
  12.     frame = nil,
  13.     bIsPlaying = false,
  14. };
  15.  
  16. ///////////////
  17. // HTML & Javascript
  18. ///////////////
  19.  
  20. RPGM.YouTube.YouTubePlayer = [[
  21.  
  22.     <html>
  23.         <body>
  24.             <div id = "player"></div>
  25.            
  26.             <script>
  27.            
  28.                 var tag = document.createElement('script');
  29.  
  30.                 tag.src = "https://www.youtube.com/iframe_api";
  31.                 var firstScriptTag = document.getElementsByTagName('script')[0];
  32.                 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
  33.                  
  34.                 var player;
  35.                 function onYouTubeIframeAPIReady() {
  36.                     player = new YT.Player('player', {
  37.                     height: '390',
  38.                     width: '640',
  39.                     videoId: '%s',
  40.                     events: {
  41.                         'onReady': onPlayerReady,
  42.                     }
  43.                     });
  44.                 }
  45.                
  46.                 function onPlayerReady(event) {
  47.                     event.target.playVideo();
  48.                     event.target.setVolume(50);
  49.                 }  
  50.             </script>
  51.         </body>
  52.     </html>
  53. ]]
  54.  
  55. ////////////////
  56. // Lua
  57. ////////////////
  58.  
  59. function RPGM.YouTube:Play(id)
  60.    
  61.     if (self.frame == nil) then
  62.    
  63.         self.frame = vgui.Create("DFrame");
  64.         self.frame:SetPos(0, 0);
  65.         self.frame:SetSize(100, 100);
  66.         self.frame:SetTitle("");
  67.         self.frame:SetVisible(false);
  68.        
  69.         self.frame.html = vgui.Create("DHTML", self.frame);
  70.         self.frame.html:SetPos(0, 0);
  71.         self.frame.html:SetSize(self.frame:GetWide(), self.frame:GetTall());
  72.         function self.frame.html:ConsoleMessage(msg) end
  73.     end
  74.    
  75.     self.frame.html:SetHTML(string.format(self.YouTubePlayer, id));
  76.     self.bIsPlaying = true;
  77. end
  78.  
  79. function RPGM.YouTube:Stop()
  80.  
  81.     if (self.frame == nil) then
  82.         return;
  83.     end
  84.    
  85.     self.frame.html:QueueJavascript([[
  86.         player.stopVideo();
  87.     ]]);
  88.    
  89.     self.bIsPlaying = false;
  90.    
  91.     self.frame:Close();
  92.     self.frame = nil;
  93. end
  94.  
  95. function RPGM.YouTube:SetVolume(volume)
  96.  
  97.     self.frame.html:QueueJavascript([[
  98.         player.setVolume(]]..volume..[[);
  99.     ]]);
  100. end
  101.  
  102. function RPGM.YouTube:IsPlaying()
  103.     return self.bIsPlaying;
  104. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement