Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////
- /*
- Clientside YouTube api
- Smart Like My Shoe
- 2/4/2018
- 4:20 AM
- */
- RPGM.YouTube = {
- frame = nil,
- bIsPlaying = false,
- };
- ///////////////
- // HTML & Javascript
- ///////////////
- RPGM.YouTube.YouTubePlayer = [[
- <html>
- <body>
- <div id = "player"></div>
- <script>
- var tag = document.createElement('script');
- tag.src = "https://www.youtube.com/iframe_api";
- var firstScriptTag = document.getElementsByTagName('script')[0];
- firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
- var player;
- function onYouTubeIframeAPIReady() {
- player = new YT.Player('player', {
- height: '390',
- width: '640',
- videoId: '%s',
- events: {
- 'onReady': onPlayerReady,
- }
- });
- }
- function onPlayerReady(event) {
- event.target.playVideo();
- event.target.setVolume(50);
- }
- </script>
- </body>
- </html>
- ]]
- ////////////////
- // Lua
- ////////////////
- function RPGM.YouTube:Play(id)
- if (self.frame == nil) then
- self.frame = vgui.Create("DFrame");
- self.frame:SetPos(0, 0);
- self.frame:SetSize(100, 100);
- self.frame:SetTitle("");
- self.frame:SetVisible(false);
- self.frame.html = vgui.Create("DHTML", self.frame);
- self.frame.html:SetPos(0, 0);
- self.frame.html:SetSize(self.frame:GetWide(), self.frame:GetTall());
- function self.frame.html:ConsoleMessage(msg) end
- end
- self.frame.html:SetHTML(string.format(self.YouTubePlayer, id));
- self.bIsPlaying = true;
- end
- function RPGM.YouTube:Stop()
- if (self.frame == nil) then
- return;
- end
- self.frame.html:QueueJavascript([[
- player.stopVideo();
- ]]);
- self.bIsPlaying = false;
- self.frame:Close();
- self.frame = nil;
- end
- function RPGM.YouTube:SetVolume(volume)
- self.frame.html:QueueJavascript([[
- player.setVolume(]]..volume..[[);
- ]]);
- end
- function RPGM.YouTube:IsPlaying()
- return self.bIsPlaying;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement