template.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import Icons from './icons';
  2. import tplPlayer from '../template/player.art';
  3. import utils from './utils';
  4. class Template {
  5. constructor(options) {
  6. this.container = options.container;
  7. this.options = options.options;
  8. this.index = options.index;
  9. this.tran = options.tran;
  10. this.init();
  11. }
  12. init() {
  13. this.container.innerHTML = tplPlayer({
  14. options: this.options,
  15. index: this.index,
  16. tran: this.tran,
  17. icons: Icons,
  18. mobile: utils.isMobile,
  19. video: {
  20. current: true,
  21. pic: this.options.video.pic,
  22. screenshot: this.options.screenshot,
  23. preload: this.options.preload,
  24. url: this.options.video.url,
  25. subtitle: this.options.subtitle,
  26. },
  27. });
  28. this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');
  29. this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');
  30. this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');
  31. this.volumeButton = this.container.querySelector('.dplayer-volume');
  32. this.volumeButtonIcon = this.container.querySelector('.dplayer-volume-icon');
  33. this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');
  34. this.playedBar = this.container.querySelector('.dplayer-played');
  35. this.loadedBar = this.container.querySelector('.dplayer-loaded');
  36. this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');
  37. this.playedBarTime = this.container.querySelector('.dplayer-bar-time');
  38. this.danmaku = this.container.querySelector('.dplayer-danmaku');
  39. this.danmakuLoading = this.container.querySelector('.dplayer-danloading');
  40. this.video = this.container.querySelector('.dplayer-video-current');
  41. this.bezel = this.container.querySelector('.dplayer-bezel-icon');
  42. this.playButton = this.container.querySelector('.dplayer-play-icon');
  43. this.mobilePlayButton = this.container.querySelector('.dplayer-mobile-play');
  44. this.videoWrap = this.container.querySelector('.dplayer-video-wrap');
  45. this.controllerMask = this.container.querySelector('.dplayer-controller-mask');
  46. this.ptime = this.container.querySelector('.dplayer-ptime');
  47. this.settingButton = this.container.querySelector('.dplayer-setting-icon');
  48. this.settingBox = this.container.querySelector('.dplayer-setting-box');
  49. this.mask = this.container.querySelector('.dplayer-mask');
  50. this.loop = this.container.querySelector('.dplayer-setting-loop');
  51. this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');
  52. this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');
  53. this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');
  54. this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');
  55. this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');
  56. this.speed = this.container.querySelector('.dplayer-setting-speed');
  57. this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');
  58. this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');
  59. this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');
  60. this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');
  61. this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');
  62. this.dtime = this.container.querySelector('.dplayer-dtime');
  63. this.controller = this.container.querySelector('.dplayer-controller');
  64. this.commentInput = this.container.querySelector('.dplayer-comment-input');
  65. this.commentButton = this.container.querySelector('.dplayer-comment-icon');
  66. this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');
  67. this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');
  68. this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon path');
  69. this.commentSendButton = this.container.querySelector('.dplayer-send-icon');
  70. this.commentSendFill = this.container.querySelector('.dplayer-send-icon path');
  71. this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');
  72. this.browserFullButton = this.container.querySelector('.dplayer-full-icon');
  73. this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');
  74. this.menu = this.container.querySelector('.dplayer-menu');
  75. this.menuItem = this.container.querySelectorAll('.dplayer-menu-item');
  76. this.qualityList = this.container.querySelector('.dplayer-quality-list');
  77. this.camareButton = this.container.querySelector('.dplayer-camera-icon');
  78. this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');
  79. this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');
  80. this.subtitle = this.container.querySelector('.dplayer-subtitle');
  81. this.qualityButton = this.container.querySelector('.dplayer-quality-icon');
  82. this.barPreview = this.container.querySelector('.dplayer-bar-preview');
  83. this.barWrap = this.container.querySelector('.dplayer-bar-wrap');
  84. this.notice = this.container.querySelector('.dplayer-notice');
  85. this.infoPanel = this.container.querySelector('.dplayer-info-panel');
  86. this.infoPanelClose = this.container.querySelector('.dplayer-info-panel-close');
  87. this.infoVersion = this.container.querySelector('.dplayer-info-panel-item-version .dplayer-info-panel-item-data');
  88. this.infoFPS = this.container.querySelector('.dplayer-info-panel-item-fps .dplayer-info-panel-item-data');
  89. this.infoType = this.container.querySelector('.dplayer-info-panel-item-type .dplayer-info-panel-item-data');
  90. this.infoUrl = this.container.querySelector('.dplayer-info-panel-item-url .dplayer-info-panel-item-data');
  91. this.infoResolution = this.container.querySelector('.dplayer-info-panel-item-resolution .dplayer-info-panel-item-data');
  92. this.infoDuration = this.container.querySelector('.dplayer-info-panel-item-duration .dplayer-info-panel-item-data');
  93. this.infoDanmakuId = this.container.querySelector('.dplayer-info-panel-item-danmaku-id .dplayer-info-panel-item-data');
  94. this.infoDanmakuApi = this.container.querySelector('.dplayer-info-panel-item-danmaku-api .dplayer-info-panel-item-data');
  95. this.infoDanmakuAmount = this.container.querySelector('.dplayer-info-panel-item-danmaku-amount .dplayer-info-panel-item-data');
  96. }
  97. }
  98. export default Template;