xgplayer 2.32.2 → 2.32.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/browser/controls/airplay.js +1 -1
  2. package/browser/controls/cssFullscreen.js +1 -1
  3. package/browser/controls/danmu.js +1 -1
  4. package/browser/controls/definition.js +1 -1
  5. package/browser/controls/download.js +1 -1
  6. package/browser/controls/enter.js +1 -1
  7. package/browser/controls/error.js +1 -1
  8. package/browser/controls/errorRetry.js +1 -1
  9. package/browser/controls/flex.js +1 -1
  10. package/browser/controls/fullscreen.js +1 -1
  11. package/browser/controls/loading.js +1 -1
  12. package/browser/controls/memoryPlay.js +1 -1
  13. package/browser/controls/miniplayer.js +7 -9
  14. package/browser/controls/mobile.js +1 -1
  15. package/browser/controls/nativeTextTrack.js +1 -1
  16. package/browser/controls/pip.js +1 -1
  17. package/browser/controls/play.js +1 -1
  18. package/browser/controls/playNext.js +1 -1
  19. package/browser/controls/playbackRate.js +1 -1
  20. package/browser/controls/poster.js +1 -1
  21. package/browser/controls/progress.js +1 -1
  22. package/browser/controls/reload.js +1 -1
  23. package/browser/controls/replay.js +1 -1
  24. package/browser/controls/rotate.js +1 -1
  25. package/browser/controls/screenShot.js +1 -1
  26. package/browser/controls/start.js +1 -1
  27. package/browser/controls/textTrack.js +1 -1
  28. package/browser/controls/time.js +1 -1
  29. package/browser/controls/volume.js +1 -1
  30. package/browser/core_player.js +1 -1
  31. package/browser/core_player.js.map +1 -1
  32. package/browser/index.js +7 -9
  33. package/browser/index.js.map +1 -1
  34. package/browser/simple_player.js +1 -1
  35. package/browser/simple_player.js.map +1 -1
  36. package/dist/controls/airplay.js +1 -1
  37. package/dist/controls/cssFullscreen.js +1 -1
  38. package/dist/controls/danmu.js +1 -1
  39. package/dist/controls/definition.js +1 -1
  40. package/dist/controls/download.js +1 -1
  41. package/dist/controls/enter.js +1 -1
  42. package/dist/controls/error.js +1 -1
  43. package/dist/controls/errorRetry.js +1 -1
  44. package/dist/controls/flex.js +1 -1
  45. package/dist/controls/fullscreen.js +1 -1
  46. package/dist/controls/loading.js +1 -1
  47. package/dist/controls/memoryPlay.js +1 -1
  48. package/dist/controls/miniplayer.js +7 -9
  49. package/dist/controls/mobile.js +1 -1
  50. package/dist/controls/nativeTextTrack.js +1 -1
  51. package/dist/controls/pip.js +1 -1
  52. package/dist/controls/play.js +1 -1
  53. package/dist/controls/playNext.js +1 -1
  54. package/dist/controls/playbackRate.js +1 -1
  55. package/dist/controls/poster.js +1 -1
  56. package/dist/controls/progress.js +1 -1
  57. package/dist/controls/reload.js +1 -1
  58. package/dist/controls/replay.js +1 -1
  59. package/dist/controls/rotate.js +1 -1
  60. package/dist/controls/screenShot.js +1 -1
  61. package/dist/controls/start.js +1 -1
  62. package/dist/controls/textTrack.js +1 -1
  63. package/dist/controls/time.js +1 -1
  64. package/dist/controls/volume.js +1 -1
  65. package/dist/core_player.js +2904 -2970
  66. package/dist/core_player.js.map +1 -1
  67. package/dist/index.js +3161 -1856
  68. package/dist/index.js.map +1 -1
  69. package/dist/simple_player.js +190 -165
  70. package/dist/simple_player.js.map +1 -1
  71. package/es/controls/airplay.js +1 -1
  72. package/es/controls/cssFullscreen.js +1 -1
  73. package/es/controls/danmu.js +1 -1
  74. package/es/controls/definition.js +1 -1
  75. package/es/controls/download.js +1 -1
  76. package/es/controls/enter.js +1 -1
  77. package/es/controls/error.js +1 -1
  78. package/es/controls/errorRetry.js +1 -1
  79. package/es/controls/flex.js +1 -1
  80. package/es/controls/fullscreen.js +1 -1
  81. package/es/controls/i18n.js +1 -1
  82. package/es/controls/keyboard.js +1 -1
  83. package/es/controls/loading.js +1 -1
  84. package/es/controls/localPreview.js +1 -1
  85. package/es/controls/memoryPlay.js +1 -1
  86. package/es/controls/miniplayer.js +7 -9
  87. package/es/controls/mobile.js +1 -1
  88. package/es/controls/nativeTextTrack.js +1 -1
  89. package/es/controls/pc.js +1 -1
  90. package/es/controls/pip.js +1 -1
  91. package/es/controls/play.js +1 -1
  92. package/es/controls/playNext.js +1 -1
  93. package/es/controls/playbackRate.js +1 -1
  94. package/es/controls/poster.js +1 -1
  95. package/es/controls/progress.js +1 -1
  96. package/es/controls/reload.js +1 -1
  97. package/es/controls/replay.js +1 -1
  98. package/es/controls/rotate.js +1 -1
  99. package/es/controls/screenShot.js +1 -1
  100. package/es/controls/start.js +1 -1
  101. package/es/controls/textTrack.js +1 -1
  102. package/es/controls/time.js +1 -1
  103. package/es/controls/volume.js +1 -1
  104. package/es/core_player.js +1 -1
  105. package/es/core_player.js.map +1 -1
  106. package/es/index.js +7 -9
  107. package/es/index.js.map +1 -1
  108. package/es/simple_player.js +1 -1
  109. package/es/simple_player.js.map +1 -1
  110. package/package.json +12 -2
  111. package/types/index.d.ts +0 -11
  112. package/postcss.config.js +0 -7
  113. package/src/bind/airplay.js +0 -10
  114. package/src/bind/cssFullscreen.js +0 -10
  115. package/src/bind/danmu.js +0 -10
  116. package/src/bind/definition.js +0 -10
  117. package/src/bind/download.js +0 -10
  118. package/src/bind/enter.js +0 -8
  119. package/src/bind/error.js +0 -8
  120. package/src/bind/errorRetry.js +0 -8
  121. package/src/bind/flex.js +0 -8
  122. package/src/bind/fullscreen.js +0 -10
  123. package/src/bind/i18n.js +0 -8
  124. package/src/bind/keyboard.js +0 -8
  125. package/src/bind/loading.js +0 -8
  126. package/src/bind/localPreview.js +0 -10
  127. package/src/bind/memoryPlay.js +0 -10
  128. package/src/bind/miniplayer.js +0 -10
  129. package/src/bind/mobile.js +0 -8
  130. package/src/bind/nativeTextTrack.js +0 -8
  131. package/src/bind/pc.js +0 -8
  132. package/src/bind/pip.js +0 -10
  133. package/src/bind/play.js +0 -10
  134. package/src/bind/playNext.js +0 -10
  135. package/src/bind/playbackRate.js +0 -8
  136. package/src/bind/poster.js +0 -8
  137. package/src/bind/progress.js +0 -8
  138. package/src/bind/reload.js +0 -10
  139. package/src/bind/replay.js +0 -10
  140. package/src/bind/rotate.js +0 -10
  141. package/src/bind/screenShot.js +0 -10
  142. package/src/bind/stallCheck.js +0 -8
  143. package/src/bind/start.js +0 -10
  144. package/src/bind/textTrack.js +0 -8
  145. package/src/bind/time.js +0 -8
  146. package/src/bind/volume.js +0 -10
  147. package/src/controls/airplay.js +0 -20
  148. package/src/controls/cssFullscreen.js +0 -49
  149. package/src/controls/danmu.js +0 -75
  150. package/src/controls/definition.js +0 -13
  151. package/src/controls/download.js +0 -28
  152. package/src/controls/errorRetry.js +0 -132
  153. package/src/controls/fullscreen.js +0 -145
  154. package/src/controls/keyboard.js +0 -214
  155. package/src/controls/localPreview.js +0 -32
  156. package/src/controls/memoryPlay.js +0 -14
  157. package/src/controls/miniplayer.js +0 -128
  158. package/src/controls/mobile.js +0 -100
  159. package/src/controls/pc.js +0 -123
  160. package/src/controls/pip.js +0 -52
  161. package/src/controls/play.js +0 -34
  162. package/src/controls/playNext.js +0 -29
  163. package/src/controls/reload.js +0 -24
  164. package/src/controls/replay.js +0 -30
  165. package/src/controls/rotate.js +0 -99
  166. package/src/controls/screenShot.js +0 -65
  167. package/src/controls/stallCheck.js +0 -38
  168. package/src/controls/start.js +0 -60
  169. package/src/controls/textTrack.js +0 -182
  170. package/src/controls/volume.js +0 -178
  171. package/src/controls.js +0 -36
  172. package/src/core_player.js +0 -13
  173. package/src/error.js +0 -74
  174. package/src/index.js +0 -57
  175. package/src/player.js +0 -553
  176. package/src/proxy.js +0 -495
  177. package/src/simple_player.js +0 -42
  178. package/src/skin/assets/airplay.svg +0 -1
  179. package/src/skin/assets/download.svg +0 -14
  180. package/src/skin/assets/exitCssFull.svg +0 -3
  181. package/src/skin/assets/exitFull.svg +0 -3
  182. package/src/skin/assets/loading.svg +0 -3
  183. package/src/skin/assets/panel.svg +0 -4
  184. package/src/skin/assets/pause.svg +0 -3
  185. package/src/skin/assets/play.svg +0 -3
  186. package/src/skin/assets/playNext.svg +0 -3
  187. package/src/skin/assets/reload.svg +0 -3
  188. package/src/skin/assets/replay.svg +0 -3
  189. package/src/skin/assets/requestCssFull.svg +0 -3
  190. package/src/skin/assets/requestFull.svg +0 -3
  191. package/src/skin/assets/rotate.svg +0 -11
  192. package/src/skin/assets/startPause.svg +0 -3
  193. package/src/skin/assets/startPlay.svg +0 -3
  194. package/src/skin/assets/volumeLarge.svg +0 -4
  195. package/src/skin/assets/volumeMuted.svg +0 -4
  196. package/src/skin/assets/volumeSmall.svg +0 -4
  197. package/src/skin/controls/airplay.js +0 -44
  198. package/src/skin/controls/cssFullscreen.js +0 -36
  199. package/src/skin/controls/danmu.js +0 -214
  200. package/src/skin/controls/definition.js +0 -251
  201. package/src/skin/controls/download.js +0 -29
  202. package/src/skin/controls/enter.js +0 -21
  203. package/src/skin/controls/error.js +0 -57
  204. package/src/skin/controls/flex.js +0 -13
  205. package/src/skin/controls/fullscreen.js +0 -43
  206. package/src/skin/controls/i18n.js +0 -168
  207. package/src/skin/controls/loading.js +0 -17
  208. package/src/skin/controls/localPreview.js +0 -18
  209. package/src/skin/controls/memoryPlay.js +0 -39
  210. package/src/skin/controls/miniplayer.js +0 -26
  211. package/src/skin/controls/nativeTextTrack.js +0 -153
  212. package/src/skin/controls/pip.js +0 -26
  213. package/src/skin/controls/play.js +0 -43
  214. package/src/skin/controls/playNext.js +0 -41
  215. package/src/skin/controls/playbackRate.js +0 -141
  216. package/src/skin/controls/poster.js +0 -18
  217. package/src/skin/controls/progress.js +0 -407
  218. package/src/skin/controls/reload.js +0 -29
  219. package/src/skin/controls/replay.js +0 -56
  220. package/src/skin/controls/rotate.js +0 -29
  221. package/src/skin/controls/screenShot.js +0 -27
  222. package/src/skin/controls/start.js +0 -62
  223. package/src/skin/controls/textTrack.js +0 -113
  224. package/src/skin/controls/time.js +0 -40
  225. package/src/skin/controls/volume.js +0 -63
  226. package/src/skin/index.js +0 -63
  227. package/src/skin/style/common/animation.scss +0 -16
  228. package/src/skin/style/common/svg-url.scss +0 -70
  229. package/src/skin/style/controls/airplay.scss +0 -35
  230. package/src/skin/style/controls/controls.scss +0 -40
  231. package/src/skin/style/controls/cssfullscreen.scss +0 -103
  232. package/src/skin/style/controls/danmu.scss +0 -333
  233. package/src/skin/style/controls/definition.scss +0 -76
  234. package/src/skin/style/controls/download.scss +0 -45
  235. package/src/skin/style/controls/enter.scss +0 -55
  236. package/src/skin/style/controls/error.scss +0 -34
  237. package/src/skin/style/controls/fullscreen.scss +0 -60
  238. package/src/skin/style/controls/icon.scss +0 -12
  239. package/src/skin/style/controls/live.scss +0 -9
  240. package/src/skin/style/controls/loading.scss +0 -44
  241. package/src/skin/style/controls/memoryPlay.scss +0 -28
  242. package/src/skin/style/controls/miniplayer.scss +0 -104
  243. package/src/skin/style/controls/pip.scss +0 -42
  244. package/src/skin/style/controls/placeholder.scss +0 -7
  245. package/src/skin/style/controls/play.scss +0 -79
  246. package/src/skin/style/controls/playNext.scss +0 -44
  247. package/src/skin/style/controls/playbackRate.scss +0 -82
  248. package/src/skin/style/controls/poster.scss +0 -19
  249. package/src/skin/style/controls/progress.scss +0 -182
  250. package/src/skin/style/controls/reload.scss +0 -43
  251. package/src/skin/style/controls/replay.scss +0 -46
  252. package/src/skin/style/controls/rotate.scss +0 -41
  253. package/src/skin/style/controls/screenShot.scss +0 -42
  254. package/src/skin/style/controls/start.scss +0 -78
  255. package/src/skin/style/controls/textTrack.scss +0 -87
  256. package/src/skin/style/controls/time.scss +0 -24
  257. package/src/skin/style/controls/tips.scss +0 -24
  258. package/src/skin/style/controls/videoProxy.scss +0 -6
  259. package/src/skin/style/controls/volume.scss +0 -143
  260. package/src/skin/style/index.scss +0 -88
  261. package/src/utils/sniffer.js +0 -47
  262. package/src/utils/url.js +0 -10
  263. package/src/utils/util.js +0 -358
  264. package/src/utils/xgplayerTimeRange.js +0 -17
  265. package/src/version.js +0 -7
  266. package/version.json +0 -3
  267. package/webpack.config.js +0 -168
package/src/utils/util.js DELETED
@@ -1,358 +0,0 @@
1
- import XgplayerTimeRange from './xgplayerTimeRange'
2
-
3
- export function createDom(el = 'div', tpl = '', attrs = {}, cname = '') {
4
- let dom = document.createElement(el)
5
- dom.className = cname
6
- dom.innerHTML = tpl
7
- Object.keys(attrs).forEach(item => {
8
- let key = item
9
- let value = attrs[item]
10
- if (el === 'video' || el === 'audio') {
11
- if (value) {
12
- dom.setAttribute(key, value)
13
- }
14
- } else {
15
- dom.setAttribute(key, value)
16
- }
17
- })
18
- return dom
19
- }
20
-
21
- export function hasClass(el, className) {
22
- if (!el) {
23
- return false;
24
- }
25
-
26
- if (el.classList) {
27
- return Array.prototype.some.call(el.classList, item => item === className)
28
- } else if (el.className) {
29
- return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'))
30
- } else {
31
- return false;
32
- }
33
- }
34
-
35
- export function addClass(el, className) {
36
- if (!el) {
37
- return;
38
- }
39
-
40
- if (el.classList) {
41
- className.replace(/(^\s+|\s+$)/g, '').split(/\s+/g).forEach(item => {
42
- item && el.classList.add(item)
43
- })
44
- } else if (!hasClass(el, className)) {
45
- el.className += ' ' + className
46
- }
47
- }
48
-
49
- export function removeClass(el, className) {
50
- if (!el) {
51
- return;
52
- }
53
-
54
- if (el.classList) {
55
- className.split(/\s+/g).forEach(item => {
56
- el.classList.remove(item)
57
- })
58
- } else if (hasClass(el, className)) {
59
- className.split(/\s+/g).forEach(item => {
60
- let reg = new RegExp('(\\s|^)' + item + '(\\s|$)')
61
- el.className = el.className.replace(reg, ' ')
62
- })
63
- }
64
- }
65
-
66
- export function toggleClass(el, className) {
67
- if (!el) {
68
- return;
69
- }
70
-
71
- className.split(/\s+/g).forEach(item => {
72
- if (hasClass(el, item)) {
73
- removeClass(el, item)
74
- } else {
75
- addClass(el, item)
76
- }
77
- })
78
- }
79
-
80
- export function findDom(el = document, sel) {
81
- let dom
82
- // fix querySelector IDs that start with a digit
83
- // https://stackoverflow.com/questions/37270787/uncaught-syntaxerror-failed-to-execute-queryselector-on-document
84
- try {
85
- dom = el.querySelector(sel)
86
- } catch (e) {
87
- if (sel.indexOf('#') === 0) {
88
- dom = el.getElementById(sel.slice(1))
89
- }
90
- }
91
- return dom
92
- }
93
-
94
- export function padStart(str, length, pad) {
95
- let charstr = String(pad)
96
- let len = length >> 0
97
- let maxlen = Math.ceil(len / charstr.length)
98
- let chars = []
99
- let r = String(str)
100
- while (maxlen--) {
101
- chars.push(charstr)
102
- }
103
- return chars.join('').substring(0, len - r.length) + r
104
- }
105
-
106
- export function format(time) {
107
- if (window.isNaN(time)) {
108
- return ''
109
- }
110
- let hour = padStart(Math.floor(time / 3600), 2, 0)
111
- let minute = padStart(Math.floor((time - hour * 3600) / 60), 2, 0)
112
- let second = padStart(Math.floor((time - hour * 3600 - minute * 60)), 2, 0)
113
- return (hour === '00' ? [minute, second] : [hour, minute, second]).join(':')
114
- }
115
-
116
- export function event(e) {
117
- if (e.touches) {
118
- let touch = e.touches[0] || e.changedTouches[0]
119
- e.clientX = touch.clientX || 0
120
- e.clientY = touch.clientY || 0
121
- e.offsetX = touch.pageX - touch.target.offsetLeft
122
- e.offsetY = touch.pageY - touch.target.offsetTop
123
- }
124
- e._target = e.target || e.srcElement
125
- }
126
-
127
- export function typeOf(obj) {
128
- return Object.prototype.toString.call(obj).match(/([^\s.*]+)(?=]$)/g)[0]
129
- }
130
-
131
- export function deepCopy(dst, src) {
132
- if (typeOf(src) === 'Object' && typeOf(dst) === 'Object') {
133
- Object.keys(src).forEach(key => {
134
- if (typeOf(src[key]) === 'Object' && !(src[key] instanceof Node)) {
135
- if (!dst[key]) {
136
- dst[key] = src[key]
137
- } else {
138
- deepCopy(dst[key], src[key])
139
- }
140
- } else if (typeOf(src[key]) === 'Array') {
141
- dst[key] = typeOf(dst[key]) === 'Array' ? dst[key].concat(src[key]) : src[key]
142
- } else {
143
- dst[key] = src[key]
144
- }
145
- })
146
- return dst
147
- }
148
- }
149
- export function getBgImage(el) {
150
- // fix: return current page url when url is none
151
- let url = (el.currentStyle || window.getComputedStyle(el, null)).backgroundImage
152
- if (!url || url === 'none') {
153
- return ''
154
- }
155
- let a = document.createElement('a')
156
- a.href = url.replace(/url\("|"\)/g, '')
157
- return a.href
158
- }
159
-
160
- export function copyDom(dom) {
161
- if (dom && dom.nodeType === 1) {
162
- let back = document.createElement(dom.tagName)
163
- Array.prototype.forEach.call(dom.attributes, (node) => {
164
- back.setAttribute(node.name, node.value)
165
- })
166
- if (dom.innerHTML) {
167
- back.innerHTML = dom.innerHTML
168
- }
169
- return back
170
- } else {
171
- return ''
172
- }
173
- }
174
-
175
- export function _setInterval(context, eventName, intervalFunc, frequency) {
176
- if (!context._interval[eventName]) {
177
- context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency)
178
- }
179
- }
180
-
181
- export function _clearInterval(context, eventName) {
182
- clearInterval(context._interval[eventName])
183
- context._interval[eventName] = null
184
- }
185
-
186
- export function createImgBtn(name, imgUrl, width, height) {
187
- let btn = createDom(`xg-${name}`, '', {}, `xgplayer-${name}-img`)
188
- btn.style.backgroundImage = `url("${imgUrl}")`
189
- if (width && height) {
190
- let w, h, unit
191
- ['px', 'rem', 'em', 'pt', 'dp', 'vw', 'vh', 'vm', '%'].every((item) => {
192
- if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {
193
- w = Number(width.slice(0, width.indexOf(item)).trim())
194
- h = Number(height.slice(0, height.indexOf(item)).trim())
195
- unit = item
196
- return false
197
- } else {
198
- return true
199
- }
200
- })
201
- btn.style.width = `${w}${unit}`
202
- btn.style.height = `${h}${unit}`
203
- btn.style.backgroundSize = `${w}${unit} ${h}${unit}`
204
- if (name === 'start') {
205
- btn.style.margin = `-${h / 2}${unit} auto auto -${w / 2}${unit}`
206
- } else {
207
- btn.style.margin = 'auto 5px auto 5px'
208
- }
209
- }
210
- return btn
211
- }
212
-
213
- export function isWeiXin() {
214
- let ua = window.navigator.userAgent.toLowerCase()
215
- return ua.indexOf('micromessenger') > -1
216
- }
217
-
218
- export function isUc() {
219
- let ua = window.navigator.userAgent.toLowerCase()
220
- return ua.indexOf('ucbrowser') > -1
221
- }
222
-
223
- export function computeWatchDur(played = []) {
224
- let arr = []
225
- for (let i = 0; i < played.length; i++) {
226
- if(!played[i].end || played[i].begin < 0 || played[i].end < 0 || played[i].end < played[i].begin) {
227
- continue
228
- }
229
- if(arr.length < 1) {
230
- arr.push({begin: played[i].begin, end: played[i].end})
231
- } else {
232
- for (let j = 0; j < arr.length; j++) {
233
- let begin = played[i].begin
234
- let end = played[i].end
235
- if(end < arr[j].begin) {
236
- arr.splice(j, 0, {begin, end})
237
- break
238
- } else if(begin > arr[j].end) {
239
- if(j > arr.length - 2) {
240
- arr.push({begin, end})
241
- break
242
- }
243
- } else {
244
- let b = arr[j].begin
245
- let e = arr[j].end
246
- arr[j].begin = Math.min(begin, b)
247
- arr[j].end = Math.max(end, e)
248
- break
249
- }
250
- }
251
- }
252
- }
253
- let watch_dur = 0
254
- for (let i = 0; i < arr.length; i++) {
255
- watch_dur += arr[i].end - arr[i].begin
256
- }
257
- return watch_dur
258
- }
259
-
260
- export function offInDestroy(object, event, fn, offEvent) {
261
- function onDestroy () {
262
- object.off(event, fn)
263
- object.off(offEvent, onDestroy)
264
- }
265
- object.once(offEvent, onDestroy)
266
- }
267
-
268
- export function on(object, event, fn, offEvent) {
269
- if (offEvent) {
270
- object.on(event, fn)
271
- offInDestroy(object, event, fn, offEvent)
272
- } else {
273
- let _fn = data => {
274
- fn(data)
275
- object.off(event, _fn)
276
- }
277
- object.on(event, _fn)
278
- }
279
- }
280
-
281
- export function once(object, event, fn, offEvent) {
282
- if (offEvent) {
283
- object.once(event, fn)
284
- offInDestroy(object, event, fn, offEvent)
285
- } else {
286
- let _fn = data => {
287
- fn(data)
288
- object.off(event, _fn)
289
- }
290
- object.once(event, _fn)
291
- }
292
- }
293
-
294
- export function getBuffered2(vbuffered, maxHoleDuration = 0.5) { //ref: hls.js
295
- let buffered = []
296
- for (let i = 0; i < vbuffered.length; i++) {
297
- buffered.push({ start: vbuffered.start(i) < 0.5 ? 0 : vbuffered.start(i), end: vbuffered.end(i) });
298
- }
299
- buffered.sort(function (a, b) {
300
- let diff = a.start - b.start;
301
- if (diff) {
302
- return diff;
303
- } else {
304
- return b.end - a.end;
305
- }
306
- });
307
- let buffered_2 = []
308
- if (maxHoleDuration) {
309
- for (let i = 0; i < buffered.length; i++) {
310
- let buf2len = buffered_2.length
311
- if (buf2len) {
312
- let buf2end = buffered_2[buf2len - 1].end
313
- if ((buffered[i].start - buf2end) < maxHoleDuration) {
314
- if (buffered[i].end > buf2end) {
315
- buffered_2[buf2len - 1].end = buffered[i].end
316
- }
317
- } else {
318
- buffered_2.push(buffered[i])
319
- }
320
- } else {
321
- buffered_2.push(buffered[i])
322
- }
323
- }
324
- } else {
325
- buffered_2 = buffered
326
- }
327
- return new XgplayerTimeRange(buffered_2)
328
- }
329
-
330
- export function checkIsBrowser() {
331
- return !(typeof(window) === 'undefined' || typeof(window.document) === 'undefined' || typeof(window.document.createElement) === 'undefined')
332
- }
333
-
334
- export function setStyle(elem, name, value) {
335
- let style = elem.style;
336
- try {
337
- style[name] = value;
338
- } catch (error) {
339
- style.setProperty( name, value );
340
- }
341
- }
342
-
343
- export const PresentationMode = {
344
- PIP: 'picture-in-picture',
345
- INLINE: 'inline',
346
- FULLSCREEN: 'fullscreen'
347
- }
348
-
349
- export function checkWebkitSetPresentationMode (video) {
350
- return typeof video.webkitSetPresentationMode === 'function'
351
- }
352
-
353
- export const util = {
354
- createDom, hasClass, addClass, removeClass, toggleClass, findDom, padStart, format, event, typeOf,
355
- deepCopy, getBgImage, copyDom, setInterval: _setInterval, clearInterval: _clearInterval, createImgBtn, isWeiXin, isUc, computeWatchDur,
356
- offInDestroy, on, once, getBuffered2, checkIsBrowser, setStyle
357
- }
358
-
@@ -1,17 +0,0 @@
1
- export default class XgplayerTimeRange {
2
- constructor(bufferedList) {
3
- this.bufferedList = bufferedList
4
- }
5
-
6
- start (index) {
7
- return this.bufferedList[index].start
8
- }
9
-
10
- end (index) {
11
- return this.bufferedList[index].end
12
- }
13
-
14
- get length () {
15
- return this.bufferedList.length
16
- }
17
- }
package/src/version.js DELETED
@@ -1,7 +0,0 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const {version} = require('../package.json')
4
- const versionConfig = {
5
- version: version
6
- }
7
- fs.writeFileSync(path.join(__dirname, '../version.json'), JSON.stringify(versionConfig, null, 2))
package/version.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "version": "2.32.2"
3
- }
package/webpack.config.js DELETED
@@ -1,168 +0,0 @@
1
- const path = require('path')
2
- const polyfill = []
3
-
4
- const rules = [{
5
- test: /\.js$/,
6
- loader: 'babel-loader'
7
- }, {
8
- test: /\.scss$/,
9
- use: [
10
- 'style-loader',
11
- {
12
- loader: 'css-loader',
13
- options: {
14
- importLoaders: 1,
15
- minimize: true
16
- }
17
- },
18
- 'postcss-loader',
19
- {
20
- loader: 'sass-loader',
21
- options: {
22
- implementation: require('sass')
23
- }
24
- }
25
- ]
26
- }, {
27
- test: /\.svg/,
28
- loader: 'raw-loader'
29
- }]
30
-
31
- const umdModuleConfig = {
32
- rules
33
- }
34
-
35
- const babelModuleConfig = {
36
- rules: rules.concat({
37
- test: /\.(js|jsx)$/,
38
- use: {
39
- loader: 'babel-loader',
40
- options: {
41
- presets: [
42
- 'es2015'
43
- ],
44
- plugins: [
45
- 'add-module-exports',
46
- 'babel-plugin-bulk-import'
47
- ]
48
- }
49
- },
50
- exclude: /node_modules/
51
- })
52
- }
53
-
54
- const umd = {
55
- entry: {
56
- index: polyfill.concat(['./src/index.js']),
57
- 'simple_player': polyfill.concat(['./src/simple_player.js']),
58
- 'core_player': polyfill.concat(['./src/core_player.js'])
59
- },
60
- devtool: 'source-map',
61
- output: {
62
- path: `${__dirname}/dist`,
63
- filename: '[name].js',
64
- library: 'xgplayer',
65
- globalObject: 'this',
66
- libraryTarget: 'umd'
67
- },
68
- mode: 'production',
69
- module: babelModuleConfig,
70
- optimization: {
71
- minimize: false
72
- }
73
- }
74
-
75
- const umd_es6 = {
76
- entry: {
77
- index: polyfill.concat(['./src/index.js']),
78
- 'simple_player': polyfill.concat(['./src/simple_player.js']),
79
- 'core_player': polyfill.concat(['./src/core_player.js'])
80
- },
81
- devtool: 'source-map',
82
- output: {
83
- path: `${__dirname}/es`,
84
- filename: '[name].js',
85
- library: 'xgplayer',
86
- libraryTarget: 'umd'
87
- },
88
- mode: 'production',
89
- module: umdModuleConfig,
90
- optimization: {
91
- minimize: true
92
- }
93
- }
94
-
95
- const client = {
96
- entry: {
97
- index: polyfill.concat(['./src/index.js']),
98
- 'simple_player': polyfill.concat(['./src/simple_player.js']),
99
- 'core_player': polyfill.concat(['./src/core_player.js'])
100
- },
101
- devtool: 'source-map',
102
- output: {
103
- path: `${__dirname}/browser`,
104
- filename: '[name].js',
105
- library: 'Player',
106
- libraryTarget: 'window'
107
- },
108
- module: babelModuleConfig,
109
- mode: 'production',
110
- optimization: {
111
- minimize: true
112
- }
113
- }
114
-
115
- const controls = ['airplay', 'cssFullscreen', 'danmu', 'definition', 'download', 'enter', 'error', 'errorRetry',
116
- 'flex', 'fullscreen', 'i18n', 'keyboard', 'loading', 'localPreview', 'memoryPlay', 'miniplayer', 'mobile', 'pc',
117
- 'pip', 'play', 'playbackRate', 'playNext', 'poster', 'progress', 'reload', 'replay', 'rotate', 'screenShot',
118
- 'start', 'textTrack', 'nativeTextTrack', 'time', 'volume']
119
-
120
- const umd_es6_controls = controls.map(key => {
121
- return {
122
- entry: `./src/bind/${key}.js`,
123
- output: {
124
- filename: `${key}.js`,
125
- path: path.resolve(__dirname, 'es/controls'),
126
- library: ['xgplayer', 'PlayerControls', key],
127
- libraryTarget: 'umd'
128
- },
129
- mode: 'production',
130
- optimization: {},
131
- module: umdModuleConfig,
132
- devtool: false
133
- }
134
- })
135
-
136
- const umd_controls = controls.map(key => {
137
- return {
138
- entry: `./src/bind/${key}.js`,
139
- output: {
140
- filename: `${key}.js`,
141
- path: path.resolve(__dirname, 'dist/controls'),
142
- library: ['xgplayer', 'PlayerControls', key],
143
- libraryTarget: 'umd'
144
- },
145
- mode: 'production',
146
- optimization: {},
147
- module: babelModuleConfig,
148
- devtool: false
149
- }
150
- })
151
-
152
- const client_controls = controls.map(key => {
153
- return {
154
- entry: `./src/bind/${key}.js`,
155
- output: {
156
- filename: `${key}.js`,
157
- path: path.resolve(__dirname, 'browser/controls'),
158
- library: ['PlayerControls', key],
159
- libraryTarget: 'window'
160
- },
161
- mode: 'production',
162
- optimization: {},
163
- module: babelModuleConfig,
164
- devtool: false
165
- }
166
- })
167
-
168
- module.exports = [umd, umd_es6, client].concat(umd_es6_controls, umd_controls, client_controls)