demo.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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. screenshot: true,
  19. video: {
  20. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  21. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png',
  22. thumbnails: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara_thumbnails.jpg'
  23. },
  24. subtitle: {
  25. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.vtt'
  26. },
  27. danmaku: {
  28. id: '9E2E3368B56CDBB4',
  29. api: 'https://api.prprpr.me/dplayer/'
  30. }
  31. });
  32. // dp2
  33. window.dp2 = new DPlayer({
  34. container: document.getElementById('dplayer2'),
  35. preload: 'none',
  36. autoplay: false,
  37. theme: '#FADFA3',
  38. loop: true,
  39. screenshot: true,
  40. hotkey: true,
  41. logo: 'https://moeplayer.b0.upaiyun.com/dplayer/DPlayer.png',
  42. volume: 0.2,
  43. mutex: true,
  44. video: {
  45. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  46. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png',
  47. thumbnails: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara_thumbnails.jpg',
  48. type: 'auto'
  49. },
  50. subtitle: {
  51. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.vtt',
  52. type: 'webvtt',
  53. fontSize: '25px',
  54. bottom: '10%',
  55. color: '#b7daff'
  56. },
  57. danmaku: {
  58. id: '9E2E3368B56CDBB4',
  59. api: 'https://api.prprpr.me/dplayer/',
  60. token: 'tokendemo',
  61. maximum: 3000,
  62. user: 'DIYgod',
  63. margin: {
  64. bottom: '15%'
  65. },
  66. unlimited: true
  67. },
  68. contextmenu: [
  69. {
  70. text: 'custom contextmenu',
  71. link: 'https://github.com/MoePlayer/DPlayer'
  72. }
  73. ]
  74. });
  75. const events = [
  76. 'abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'ended', 'error',
  77. 'loadeddata', 'loadedmetadata', 'loadstart', 'mozaudioavailable', 'pause', 'play',
  78. 'playing', 'ratechange', 'seeked', 'seeking', 'stalled',
  79. 'volumechange', 'waiting',
  80. 'screenshot',
  81. 'thumbnails_show', 'thumbnails_hide',
  82. 'danmaku_show', 'danmaku_hide', 'danmaku_clear',
  83. 'danmaku_loaded', 'danmaku_send', 'danmaku_opacity',
  84. 'contextmenu_show', 'contextmenu_hide',
  85. 'notice_show', 'notice_hide',
  86. 'quality_start', 'quality_end',
  87. 'destroy',
  88. 'resize',
  89. 'fullscreen', 'fullscreen_cancel', 'webfullscreen', 'webfullscreen_cancel',
  90. 'subtitle_show', 'subtitle_hide', 'subtitle_change'
  91. ];
  92. const eventsEle = document.getElementById('events');
  93. for (let i = 0; i < events.length; i++) {
  94. dp2.on(events[i], (info) => {
  95. eventsEle.innerHTML += '<p>Event: ' + events[i] + '</p>';
  96. eventsEle.scrollTop = eventsEle.scrollHeight;
  97. });
  98. }
  99. // dp3
  100. // window.dp3 = new DPlayer({
  101. // container: document.getElementById('dplayer3'),
  102. // preload: 'none',
  103. // video: {
  104. // quality: [{
  105. // name: 'HD',
  106. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hls/hikarunara.m3u8',
  107. // type: 'hls'
  108. // }, {
  109. // name: 'SD',
  110. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  111. // type: 'normal'
  112. // }],
  113. // defaultQuality: 0,
  114. // pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png'
  115. // }
  116. // });
  117. // // dp4
  118. // window.dp4 = new DPlayer({
  119. // container: document.getElementById('dplayer4'),
  120. // preload: 'none',
  121. // video: {
  122. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hls/hikarunara.m3u8',
  123. // type: 'hls'
  124. // }
  125. // });
  126. // // dp5
  127. // window.dp5 = new DPlayer({
  128. // container: document.getElementById('dplayer5'),
  129. // preload: 'none',
  130. // video: {
  131. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.flv',
  132. // type: 'flv'
  133. // }
  134. // });
  135. // window.dp8 = new DPlayer({
  136. // container: document.getElementById('dplayer8'),
  137. // preload: 'none',
  138. // video: {
  139. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/dash/hikarunara.mpd',
  140. // type: 'dash'
  141. // }
  142. // });
  143. // window.dp9 = new DPlayer({
  144. // container: document.getElementById('dplayer9'),
  145. // video: {
  146. // url: 'magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent',
  147. // type: 'webtorrent'
  148. // }
  149. // });
  150. // window.dp6 = new DPlayer({
  151. // container: document.getElementById('dplayer6'),
  152. // preload: 'none',
  153. // live: true,
  154. // danmaku: true,
  155. // apiBackend: {
  156. // read: function (endpoint, callback) {
  157. // console.log('假装 WebSocket 连接成功');
  158. // callback();
  159. // },
  160. // send: function (endpoint, danmakuData, callback) {
  161. // console.log('假装通过 WebSocket 发送数据', danmakuData);
  162. // callback();
  163. // }
  164. // },
  165. // video: {
  166. // url: 'https://moeplayer.b0.upaiyun.com/dplayer/hls/hikarunara.m3u8',
  167. // type: 'hls'
  168. // }
  169. // });
  170. // window.dp10 = new DPlayer({
  171. // container: document.getElementById('dplayer10'),
  172. // video: {
  173. // url: 'https://qq.webrtc.win/tv/Pear-Demo-Yosemite_National_Park.mp4',
  174. // type: 'pearplayer',
  175. // customType: {
  176. // 'pearplayer': function (video, player) {
  177. // new PearPlayer(video, {
  178. // src: video.src,
  179. // autoplay: player.options.autoplay
  180. // });
  181. // }
  182. // }
  183. // }
  184. // });
  185. }
  186. function clearPlayers () {
  187. for (let i = 0; i < 6; i++) {
  188. window['dp' + (i + 1)].pause();
  189. document.getElementById('dplayer' + (i + 1)).innerHTML = '';
  190. }
  191. }
  192. function switchDPlayer () {
  193. if (dp2.option.danmaku.id !== '5rGf5Y2X55qu6Z2p') {
  194. dp2.switchVideo({
  195. url: 'https://moeplayer.b0.upaiyun.com/dplayer/flowerdance.mp4',
  196. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/flowerdance.jpg',
  197. type: 'auto',
  198. }, {
  199. id: '5rGf5Y2X55qu6Z2p',
  200. api: 'https://api.prprpr.me/dplayer/',
  201. maximum: 3000,
  202. user: 'DIYgod'
  203. });
  204. } else {
  205. dp2.switchVideo({
  206. url: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4',
  207. pic: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.png',
  208. thumbnails: 'https://moeplayer.b0.upaiyun.com/dplayer/hikarunara_thumbnails.jpg',
  209. type: 'auto'
  210. }, {
  211. id: '9E2E3368B56CDBB42',
  212. api: 'https://api.prprpr.me/dplayer/',
  213. maximum: 3000,
  214. user: 'DIYgod'
  215. });
  216. }
  217. }