demo.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. // stats.js: JavaScript Performance Monitor
  2. const stats = new Stats();
  3. stats.showPanel(0); // 0: fps, 1: ms, 2: mb, 3+: custom
  4. document.body.appendChild(stats.dom);
  5. function animate () {
  6. stats.begin();
  7. // monitored code goes here
  8. stats.end();
  9. requestAnimationFrame(animate);
  10. }
  11. requestAnimationFrame(animate);
  12. initPlayers();
  13. function initPlayers () {
  14. // dp1
  15. window.dp1 = new DPlayer({
  16. container: document.getElementById('dplayer1'),
  17. preload: 'none',
  18. video: {
  19. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  20. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png',
  21. thumbnails: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara_thumbnails.jpg'
  22. },
  23. subtitle: {
  24. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.vtt'
  25. },
  26. danmaku: {
  27. id: '9E2E3368B56CDBB4',
  28. api: 'https://api.prprpr.me/dplayer/'
  29. }
  30. });
  31. // dp2
  32. window.dp2 = new DPlayer({
  33. container: document.getElementById('dplayer2'),
  34. preload: 'none',
  35. autoplay: false,
  36. theme: '#FADFA3',
  37. loop: true,
  38. screenshot: true,
  39. hotkey: true,
  40. logo: 'https://moeplayer.b0.upaiyun.com/dplayer/DPlayer.png',
  41. volume: 0.2,
  42. mutex: true,
  43. video: {
  44. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  45. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png',
  46. thumbnails: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara_thumbnails.jpg',
  47. type: 'auto'
  48. },
  49. subtitle: {
  50. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.vtt',
  51. type: 'webvtt',
  52. fontSize: '25px',
  53. bottom: '10%',
  54. color: '#b7daff'
  55. },
  56. danmaku: {
  57. id: '9E2E3368B56CDBB4',
  58. api: 'https://api.prprpr.me/dplayer/',
  59. token: 'tokendemo',
  60. maximum: 3000,
  61. user: 'DIYgod',
  62. margin: {
  63. bottom: '15%'
  64. },
  65. unlimited: true
  66. },
  67. contextmenu: [
  68. {
  69. text: 'custom contextmenu',
  70. link: 'https://github.com/MoePlayer/DPlayer'
  71. }
  72. ]
  73. });
  74. const events = [
  75. 'abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'ended', 'error',
  76. 'loadeddata', 'loadedmetadata', 'loadstart', 'mozaudioavailable', 'pause', 'play',
  77. 'playing', 'ratechange', 'seeked', 'seeking', 'stalled',
  78. 'volumechange', 'waiting',
  79. 'screenshot',
  80. 'thumbnails_show', 'thumbnails_hide',
  81. 'danmaku_show', 'danmaku_hide', 'danmaku_clear',
  82. 'danmaku_loaded', 'danmaku_send', 'danmaku_opacity',
  83. 'contextmenu_show', 'contextmenu_hide',
  84. 'notice_show', 'notice_hide',
  85. 'quality_start', 'quality_end',
  86. 'destroy',
  87. 'resize',
  88. 'fullscreen', 'fullscreen_cancel', 'webfullscreen', 'webfullscreen_cancel',
  89. 'subtitle_show', 'subtitle_hide', 'subtitle_change'
  90. ];
  91. const eventsEle = document.getElementById('events');
  92. for (let i = 0; i < events.length; i++) {
  93. dp2.on(events[i], (info) => {
  94. eventsEle.innerHTML += '<p>Event: ' + events[i] + '</p>';
  95. eventsEle.scrollTop = eventsEle.scrollHeight;
  96. });
  97. }
  98. // dp3
  99. // window.dp3 = new DPlayer({
  100. // container: document.getElementById('dplayer3'),
  101. // preload: 'none',
  102. // video: {
  103. // quality: [{
  104. // name: 'HD',
  105. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hls/hikarunara.m3u8',
  106. // type: 'hls'
  107. // }, {
  108. // name: 'SD',
  109. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  110. // type: 'normal'
  111. // }],
  112. // defaultQuality: 0,
  113. // pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png'
  114. // }
  115. // });
  116. // // dp4
  117. // window.dp4 = new DPlayer({
  118. // container: document.getElementById('dplayer4'),
  119. // preload: 'none',
  120. // video: {
  121. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hls/hikarunara.m3u8',
  122. // type: 'hls'
  123. // }
  124. // });
  125. // // dp5
  126. // window.dp5 = new DPlayer({
  127. // container: document.getElementById('dplayer5'),
  128. // preload: 'none',
  129. // video: {
  130. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.flv',
  131. // type: 'flv'
  132. // }
  133. // });
  134. // window.dp8 = new DPlayer({
  135. // container: document.getElementById('dplayer8'),
  136. // preload: 'none',
  137. // video: {
  138. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/dash/hikarunara.mpd',
  139. // type: 'dash'
  140. // }
  141. // });
  142. // window.dp6 = new DPlayer({
  143. // container: document.getElementById('dplayer6'),
  144. // preload: 'none',
  145. // live: true,
  146. // danmaku: true,
  147. // apiBackend: {
  148. // read: function (endpoint, callback) {
  149. // console.log('假装 WebSocket 连接成功');
  150. // callback();
  151. // },
  152. // send: function (endpoint, danmakuData, callback) {
  153. // console.log('假装通过 WebSocket 发送数据', danmakuData);
  154. // callback();
  155. // }
  156. // },
  157. // video: {
  158. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hls/hikarunara.m3u8',
  159. // type: 'hls'
  160. // }
  161. // });
  162. }
  163. function clearPlayers () {
  164. for (let i = 0; i < 6; i++) {
  165. window['dp' + (i + 1)].pause();
  166. document.getElementById('dplayer' + (i + 1)).innerHTML = '';
  167. }
  168. }
  169. function switchDPlayer () {
  170. if (dp2.option.danmaku.id !== '5rGf5Y2X55qu6Z2p') {
  171. dp2.switchVideo({
  172. url: 'https://moeplayer.b0.upaiyun.com/dplayer/flowerdance.mp4',
  173. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/flowerdance.jpg',
  174. type: 'auto',
  175. }, {
  176. id: '5rGf5Y2X55qu6Z2p',
  177. api: 'https://api.prprpr.me/dplayer/',
  178. maximum: 3000,
  179. user: 'DIYgod'
  180. });
  181. } else {
  182. dp2.switchVideo({
  183. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  184. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png',
  185. thumbnails: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara_thumbnails.jpg',
  186. type: 'auto'
  187. }, {
  188. id: '9E2E3368B56CDBB42',
  189. api: 'https://api.prprpr.me/dplayer/',
  190. maximum: 3000,
  191. user: 'DIYgod'
  192. });
  193. }
  194. }