index.html 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>DPlayer Demo</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
  7. <link rel="stylesheet" href="https://unpkg.com/github-markdown-css">
  8. <link rel="stylesheet" href="demo.css">
  9. <script src="https://unpkg.com/flv.js/dist/flv.min.js"></script>
  10. <script src="https://unpkg.com/hls.js/dist/hls.min.js"></script>
  11. <script src="DPlayer.js"></script>
  12. </head>
  13. <body class="markdown-body">
  14. <h2 id="quick-start">Quick Start</h2>
  15. <div class="example">
  16. <div id="dplayer1"></div>
  17. <script>
  18. var dp1 = new DPlayer({
  19. container: document.getElementById('dplayer1'),
  20. video: {
  21. url: 'http://devtest.qiniudn.com/若能绽放光芒.mp4',
  22. pic: 'http://devtest.qiniudn.com/若能绽放光芒.png',
  23. thumbnails: 'http://devtest.qiniudn.com/thumbnails.jpg'
  24. },
  25. danmaku: {
  26. id: '9E2E3368B56CDBB4',
  27. api: 'https://api.prprpr.me/dplayer/'
  28. }
  29. });
  30. </script>
  31. </div>
  32. <h2 id="options">Options</h2>
  33. <div class="example">
  34. <button class="btn" onclick="switchDPlayer()">Switch Video</button>
  35. <button class="btn" onclick="dp2.notice('Notice演示')">notice</button>
  36. <button class="btn" onclick="dp2.seek(120)">seek</button>
  37. <button class="btn" onclick="dp2.volume(0.2)">volume</button>
  38. <button class="btn" onclick="dp2.toggle()">toggle</button>
  39. <button class="btn" onclick="dp2.destroy()">destroy</button>
  40. <button class="btn" onclick="dp2.danmaku.hide()">danmaku.hide</button>
  41. <button class="btn" onclick="dp2.danmaku.show()">danmaku.show</button>
  42. <div id="dplayer2"></div>
  43. <div id="events"></div>
  44. <script>
  45. var dp2 = new DPlayer({
  46. container: document.getElementById('dplayer2'),
  47. autoplay: false,
  48. theme: '#FADFA3',
  49. loop: true,
  50. screenshot: true,
  51. hotkey: true,
  52. logo: 'http://devtest.qiniudn.com/DPlayer.png',
  53. volume: 0.2,
  54. video: {
  55. url: 'http://devtest.qiniudn.com/若能绽放光芒.mp4',
  56. pic: 'http://devtest.qiniudn.com/若能绽放光芒.png',
  57. type: 'auto',
  58. thumbnails: 'http://devtest.qiniudn.com/thumbnails.jpg'
  59. },
  60. danmaku: {
  61. id: '9E2E3368B56CDBB4',
  62. api: 'https://api.prprpr.me/dplayer/',
  63. token: 'tokendemo',
  64. maximum: 3000,
  65. user: 'DIYgod',
  66. margin: {
  67. bottom: '15%'
  68. },
  69. unlimited: true
  70. },
  71. contextmenu: [
  72. {
  73. text: 'custom contextmenu',
  74. link: 'https://github.com/DIYgod/DPlayer'
  75. }
  76. ]
  77. });
  78. function switchDPlayer() {
  79. if (dp2.danmaku.options.api.id !== '5rGf5Y2X55qu6Z2p') {
  80. dp2.switchVideo({
  81. url: 'http://devtest.qiniudn.com/若能绽放光芒5.m3u8',
  82. type: 'hls'
  83. },
  84. {
  85. id: '5rGf5Y2X55qu6Z2p',
  86. api: 'https://api.prprpr.me/dplayer/',
  87. maximum: 3000,
  88. user: 'DIYgod'
  89. });
  90. }
  91. else {
  92. dp2.switchVideo({
  93. url: 'http://devtest.qiniudn.com/若能绽放光芒.mp4',
  94. pic: 'http://devtest.qiniudn.com/若能绽放光芒.png',
  95. type: 'auto',
  96. },
  97. {
  98. id: '9E2E3368B56CDBB4',
  99. api: 'https://api.prprpr.me/dplayer/',
  100. maximum: 3000,
  101. user: 'DIYgod'
  102. });
  103. }
  104. }
  105. var events = [
  106. 'abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'ended', 'error',
  107. 'loadeddata', 'loadedmetadata', 'loadstart', 'mozaudioavailable', 'pause', 'play',
  108. 'playing', 'ratechange', 'seeked', 'seeking', 'stalled',
  109. 'volumechange', 'waiting',
  110. 'screenshot',
  111. 'thumbnails_show', 'thumbnails_hide',
  112. 'danmaku_show', 'danmaku_hide', 'danmaku_clear',
  113. 'danmaku_loaded', 'danmaku_send', 'danmaku_opacity',
  114. 'contextmenu_show', 'contextmenu_hide',
  115. 'notice_show', 'notice_hide',
  116. 'quality_start', 'quality_end',
  117. 'destroy',
  118. 'resize',
  119. 'fullscreen', 'fullscreen_cancel', 'webfullscreen', 'webfullscreen_cancel'
  120. ];
  121. var eventsEle = document.getElementById('events');
  122. for (let i = 0; i < events.length; i++) {
  123. dp2.on(events[i], (info) => {
  124. eventsEle.innerHTML += '<p>Event: ' + events[i] + '</p>';
  125. eventsEle.scrollTop = eventsEle.scrollHeight;
  126. })
  127. }
  128. </script>
  129. </div>
  130. <h2 id="quality-switching">Quality switching</h2>
  131. <div class="example">
  132. <button class="btn" onclick="dp3.switchQuality(1)">Switch quality</button>
  133. <div id="dplayer3"></div>
  134. <script>
  135. var dp3 = new DPlayer({
  136. container: document.getElementById('dplayer3'),
  137. video: {
  138. quality: [{
  139. name: 'HD',
  140. url: 'http://devtest.qiniudn.com/若能绽放光芒5.m3u8',
  141. type: 'hls'
  142. }, {
  143. name: 'SD',
  144. url: 'http://devtest.qiniudn.com/若能绽放光芒.mp4',
  145. type: 'normal'
  146. }],
  147. defaultQuality: 0,
  148. pic: 'http://devtest.qiniudn.com/若能绽放光芒.png'
  149. }
  150. });
  151. </script>
  152. </div>
  153. <h2 id="hls-support">HLS support</h2>
  154. <div class="example">
  155. <div id="dplayer4"></div>
  156. <script>
  157. var dp4 = new DPlayer({
  158. container: document.getElementById('dplayer4'),
  159. video: {
  160. url: 'http://devtest.qiniudn.com/若能绽放光芒5.m3u8',
  161. type: 'hls'
  162. }
  163. });
  164. </script>
  165. <div id="dplayer8"></div>
  166. <script>
  167. var dp8 = new DPlayer({
  168. container: document.getElementById('dplayer8')
  169. });
  170. var hls = new Hls();
  171. hls.loadSource('http://devtest.qiniudn.com/若能绽放光芒5.m3u8');
  172. hls.attachMedia(dp8.video);
  173. </script>
  174. </div>
  175. <h2 id="flv-support">FLV support</h2>
  176. <div class="example">
  177. <div id="dplayer5"></div>
  178. <script>
  179. var dp5 = new DPlayer({
  180. container: document.getElementById('dplayer5'),
  181. video: {
  182. url: 'http://devtest.qiniudn.com/【微小微】玖月奇迹-踩踩踩.flv',
  183. type: 'flv'
  184. }
  185. });
  186. </script>
  187. <div id="dplayer7"></div>
  188. <script>
  189. var dp7 = new DPlayer({
  190. container: document.getElementById('dplayer7')
  191. });
  192. var flvPlayer = flvjs.createPlayer({
  193. type: 'flv',
  194. url: 'http://devtest.qiniudn.com/【微小微】玖月奇迹-踩踩踩.flv'
  195. });
  196. flvPlayer.attachMediaElement(dp7.video);
  197. flvPlayer.load();
  198. </script>
  199. </div>
  200. <h2 id="bilibili-video-and-danmaku">Bilibili video and danmaku</h2>
  201. <div class="example">
  202. <div id="dplayer6"></div>
  203. <script>
  204. var dp5 = new DPlayer({
  205. container: document.getElementById('dplayer6'),
  206. screenshot: false,
  207. video: {
  208. url: 'https://api.prprpr.me/dplayer/video/bilibili?aid=4045652',
  209. },
  210. danmaku: {
  211. id: '9E2E3368B56CDBB46',
  212. api: 'https://api.prprpr.me/dplayer/',
  213. addition: ['https://api.prprpr.me/dplayer/bilibili?aid=4045652']
  214. }
  215. });
  216. </script>
  217. </div>
  218. <h2 id="html5-check">HTML5 check</h2>
  219. <ul>
  220. <li class="video">Video</li>
  221. <li class="svg">SVG</li>
  222. <li class="cssanimations">CSS animations</li>
  223. <li class="csstransforms">CSS transforms</li>
  224. <li class="documentfragment">Document fragment</li>
  225. <li class="fullscreen">Fullscreen</li>
  226. <li class="localstorage">Localstorage</li>
  227. <li class="canvas">Canvas</li>
  228. <li class="track">Track</li>
  229. <li class="websockets">WebSockets</li>
  230. </ul>
  231. <script src="https://unpkg.com/stats.js"></script>
  232. <script src="demo.js"></script>
  233. <script src="modernizr.js"></script>
  234. </body>
  235. </html>