index.html 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>DomPlayer</title>
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <link rel="stylesheet" href="./assets/css/main.css">
  7. <!-- video Player dependencies -->
  8. <script src="./assets/dom/libs/three/three.js"></script>
  9. <script src="./assets/dom/libs/es6-collections.min.js"></script>
  10. <script src="./assets/dom/libs/es6-promise.min.js"></script>
  11. <!-- Utility code that may be used by all scenes -->
  12. <!-- <script src="./scenes/common.js"></script> -->
  13. <!-- <script src="./interact/js/DomeMaster.js"></script> -->
  14. <script type="module" src="./assets/js/playlist.js"></script>
  15. <script type="module" src="./assets/dom/renderers/FullDomeRenderer.js"></script>
  16. <!-- <script src="./scenes/video.js"></script> -->
  17. <!-- UI Dependencies & Drag and resize div using jqueryUI -->
  18. <link rel="stylesheet" href="./assets/css/bulma.min.css">
  19. <link rel="stylesheet" href="./assets/css/bulma_switch.css">
  20. <script type="text/javascript" src="./assets/js/libs/jquery.min.js"></script>
  21. <script type="text/javascript" src="./assets/js/libs/jquery-ui.js"></script>
  22. <link rel="stylesheet" type="text/css" href="./assets/css/jquery-ui.css"/>
  23. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css"
  24. crossorigin="anonymous" referrerpolicy="no-referrer" />
  25. <script src="./assets/js/libs/Sortable.min.js"></script>
  26. <script>
  27. // console.log("INIT !")
  28. // if (typeof peerJsInit === "function") peerJsInit();
  29. </script>
  30. <div class="drag-widget-container" id="wrap">
  31. </div>
  32. <!-- Insert this line after script imports -->
  33. <script>if (window.module) module = window.module;</script>
  34. <script src="./renderer.js"></script>
  35. <script>
  36. $(document).ready(function() {
  37. let wrapLoca = document.getElementById('wrap')
  38. $("#wrap").draggable({
  39. drag: function(e, ui){
  40. console.log("Drag - top", wrapLoca.style.top, "left", wrapLoca.style.left)
  41. localStorage.setItem('playerTop', wrapLoca.style.top);
  42. localStorage.setItem('playerLeft', wrapLoca.style.left);
  43. },
  44. stop: function(e, ui){
  45. // localStorage.setItem('playerTop', wrapLoca.style.top);
  46. // localStorage.setItem('playerLeft', wrapLoca.style.left);
  47. // console.log("new location save", wrapLoca.style.left, wrapLoca.style.top)
  48. }
  49. }).resizable({
  50. start: function(e, ui) {
  51. // alert('resizing started');
  52. },
  53. resize: function(e, ui) {
  54. console.log("resize - width", wrapLoca.style.width, "height", wrapLoca.style.height)
  55. if(window.onWindowResize) window.onWindowResize(true)
  56. localStorage.setItem('playerWidth', wrapLoca.style.width);
  57. localStorage.setItem('playerHeight', wrapLoca.style.height);
  58. },
  59. stop: function(e, ui) {
  60. if(window.onWindowResize) window.onWindowResize(false)
  61. }
  62. });
  63. });
  64. </script>
  65. </head>
  66. <body>
  67. <div id="electron-titlebar" class="drag top-titlebar" style="-webkit-app-region: drag">
  68. <nav style="-webkit-app-region: drag; -webkit-user-select: none;">
  69. </nav>
  70. </div>
  71. <div id="panel" class="panel is-primary container card">
  72. <p class="panel-heading">
  73. DomPlayer Options
  74. </p>
  75. <p class="panel-tabs">
  76. <a class="is-active">All</a>
  77. <a>Config</a>
  78. <a>Controls</a>
  79. <a>help</a>
  80. <a>About</a>
  81. </p>
  82. <h2 class="title is-5 titles">Mod</h2>
  83. <a class="panel-block is-active">
  84. <label class="panel-block">
  85. <h2 class="Title 6" style="margin-right:10px">Normal</h2>
  86. <div class="field">
  87. <input id="switchExample" type="checkbox" name="switchExample" class="switch" checked="checked">
  88. <label for="switchExample">Half Dome</label>
  89. </div>
  90. </label>
  91. </a>
  92. <div class="panel-block">
  93. <button class="button is-small is-rounded" onclick="centerVideo()">
  94. <span class="icon is-small">
  95. <i class="fas fa-circle"></i>
  96. </span>
  97. <span>Center video</span>
  98. </button>
  99. </div>
  100. <h2 class="title is-5 titles">Playlist</h2>
  101. <div class="card">
  102. <div class="card-content">
  103. <div class="content">
  104. <ul id='playlist'><h2 class="title is-5" id="emptyFlag""">Empty...</h2></ul>
  105. </div>
  106. </div>
  107. <a class="panel-block" id="playlistWrap">
  108. </div>
  109. </a>
  110. <div class="panel-block">
  111. <button class="button is-link is-outlined is-fullwidth" onclick="addVideo()">
  112. Add Video
  113. </button>
  114. </div>
  115. <div class="card">
  116. <div class="card-content">
  117. <p class="title title is-5">
  118. Info
  119. </p>
  120. <p class="subtitle is-6">
  121. Shortcuts
  122. </p>
  123. <ul id="shortcuts">
  124. <li>P - Open/close Panel</li>
  125. <li>M - Muted</li>
  126. <li>Space - pause/play Video</li>
  127. </ul>
  128. </div>
  129. <footer class="card-footer">
  130. <p class="card-footer-item">
  131. <span>
  132. View on <a href="https://twitter.com/codinghorror/status/506010907021828096">Twitter</a>
  133. </span>
  134. </p>
  135. <p class="card-footer-item">
  136. <span>
  137. Share on <a href="#">Facebook</a>
  138. </span>
  139. </p>
  140. </footer>
  141. </div>
  142. <!-- <div id="panelWrap" class="">
  143. <button class="uk-button uk-button-default uk-button-small" id="addVideo" onclick="addVideo()">Add Video</button>
  144. <h2 class="uk-divider-icon">Playlist:</h2>
  145. <ul id='playlist'>
  146. </ul>
  147. <h2 class="uk-divider-icon">Shortcuts:</h2>
  148. <ul id="shortcuts">
  149. <li>P - Open/close Panel</li>
  150. <li>M - Muted</li>
  151. <li>Space - pause/play Video</li>
  152. </ul>
  153. <p>Compatible video formats : .m4v / .mp4 / </p>
  154. </div> -->
  155. </div>
  156. <progress id="progressBar" class="progress is-info" value="45" max="100">45%</progress>
  157. <script>
  158. let optionPanel = document.getElementById('panel')
  159. let progres = document.getElementById('progressBar')
  160. function hidepanel(bool){
  161. if (!bool) {
  162. optionPanel.style.right = "15px"
  163. optionPanel.style.opacity = 1
  164. progres.style.opacity = 1
  165. } else {
  166. optionPanel.style.right = "-315px"
  167. optionPanel.style.opacity = 0
  168. progres.style.opacity = 0
  169. }
  170. }
  171. document.addEventListener("keydown", function(event) {
  172. // console.log("event.key", event.key)
  173. let usedKeys = ["p", " ", "m"]
  174. if (usedKeys.indexOf(event.key) !== -1) { // touche - debug info
  175. event.preventDefault();
  176. if (event.key == "m" ) { // m for muted
  177. if (!videoPlayer.muted) videoPlayer.muted = true
  178. else videoPlayer.muted = false
  179. }
  180. if (event.key == " " ) { // space for pause
  181. if (!videoPlayer.paused) {
  182. videoPlayer.pause()
  183. } else {
  184. videoPlayer.play()
  185. }
  186. }
  187. if (event.key === "p") { // P for panel
  188. event.preventDefault();
  189. if(optionPanel.style.opacity == 0) hidepanel(false)
  190. else hidepanel(true)
  191. }
  192. }
  193. });
  194. </script>
  195. </body>
  196. </html>