xgplayer 2.32.2 → 2.32.3

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 (188) hide show
  1. package/browser/controls/danmu.js +3 -1
  2. package/browser/controls/errorRetry.js +1 -1
  3. package/browser/controls/nativeTextTrack.js +1 -1
  4. package/browser/core_player.js +1 -1
  5. package/browser/core_player.js.map +1 -1
  6. package/browser/index.js +7 -5
  7. package/browser/index.js.map +1 -1
  8. package/browser/simple_player.js +1 -1
  9. package/browser/simple_player.js.map +1 -1
  10. package/dist/controls/danmu.js +3 -1
  11. package/dist/controls/errorRetry.js +1 -1
  12. package/dist/controls/nativeTextTrack.js +1 -1
  13. package/dist/core_player.js +6 -7
  14. package/dist/core_player.js.map +1 -1
  15. package/dist/index.js +2881 -1887
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.min.css +1 -0
  18. package/dist/index.min.js +2 -0
  19. package/dist/index.min.js.map +1 -0
  20. package/dist/simple_player.js +6 -7
  21. package/dist/simple_player.js.map +1 -1
  22. package/es/controls/danmu.js +3 -1
  23. package/es/controls/errorRetry.js +1 -1
  24. package/es/controls/nativeTextTrack.js +1 -1
  25. package/es/core_player.js +1 -1
  26. package/es/core_player.js.map +1 -1
  27. package/es/index.js +7 -5
  28. package/es/index.js.map +1 -1
  29. package/es/simple_player.js +1 -1
  30. package/es/simple_player.js.map +1 -1
  31. package/package.json +11 -2
  32. package/types/index.d.ts +0 -11
  33. package/postcss.config.js +0 -7
  34. package/src/bind/airplay.js +0 -10
  35. package/src/bind/cssFullscreen.js +0 -10
  36. package/src/bind/danmu.js +0 -10
  37. package/src/bind/definition.js +0 -10
  38. package/src/bind/download.js +0 -10
  39. package/src/bind/enter.js +0 -8
  40. package/src/bind/error.js +0 -8
  41. package/src/bind/errorRetry.js +0 -8
  42. package/src/bind/flex.js +0 -8
  43. package/src/bind/fullscreen.js +0 -10
  44. package/src/bind/i18n.js +0 -8
  45. package/src/bind/keyboard.js +0 -8
  46. package/src/bind/loading.js +0 -8
  47. package/src/bind/localPreview.js +0 -10
  48. package/src/bind/memoryPlay.js +0 -10
  49. package/src/bind/miniplayer.js +0 -10
  50. package/src/bind/mobile.js +0 -8
  51. package/src/bind/nativeTextTrack.js +0 -8
  52. package/src/bind/pc.js +0 -8
  53. package/src/bind/pip.js +0 -10
  54. package/src/bind/play.js +0 -10
  55. package/src/bind/playNext.js +0 -10
  56. package/src/bind/playbackRate.js +0 -8
  57. package/src/bind/poster.js +0 -8
  58. package/src/bind/progress.js +0 -8
  59. package/src/bind/reload.js +0 -10
  60. package/src/bind/replay.js +0 -10
  61. package/src/bind/rotate.js +0 -10
  62. package/src/bind/screenShot.js +0 -10
  63. package/src/bind/stallCheck.js +0 -8
  64. package/src/bind/start.js +0 -10
  65. package/src/bind/textTrack.js +0 -8
  66. package/src/bind/time.js +0 -8
  67. package/src/bind/volume.js +0 -10
  68. package/src/controls/airplay.js +0 -20
  69. package/src/controls/cssFullscreen.js +0 -49
  70. package/src/controls/danmu.js +0 -75
  71. package/src/controls/definition.js +0 -13
  72. package/src/controls/download.js +0 -28
  73. package/src/controls/errorRetry.js +0 -132
  74. package/src/controls/fullscreen.js +0 -145
  75. package/src/controls/keyboard.js +0 -214
  76. package/src/controls/localPreview.js +0 -32
  77. package/src/controls/memoryPlay.js +0 -14
  78. package/src/controls/miniplayer.js +0 -128
  79. package/src/controls/mobile.js +0 -100
  80. package/src/controls/pc.js +0 -123
  81. package/src/controls/pip.js +0 -52
  82. package/src/controls/play.js +0 -34
  83. package/src/controls/playNext.js +0 -29
  84. package/src/controls/reload.js +0 -24
  85. package/src/controls/replay.js +0 -30
  86. package/src/controls/rotate.js +0 -99
  87. package/src/controls/screenShot.js +0 -65
  88. package/src/controls/stallCheck.js +0 -38
  89. package/src/controls/start.js +0 -60
  90. package/src/controls/textTrack.js +0 -182
  91. package/src/controls/volume.js +0 -178
  92. package/src/controls.js +0 -36
  93. package/src/core_player.js +0 -13
  94. package/src/error.js +0 -74
  95. package/src/index.js +0 -57
  96. package/src/player.js +0 -553
  97. package/src/proxy.js +0 -495
  98. package/src/simple_player.js +0 -42
  99. package/src/skin/assets/airplay.svg +0 -1
  100. package/src/skin/assets/download.svg +0 -14
  101. package/src/skin/assets/exitCssFull.svg +0 -3
  102. package/src/skin/assets/exitFull.svg +0 -3
  103. package/src/skin/assets/loading.svg +0 -3
  104. package/src/skin/assets/panel.svg +0 -4
  105. package/src/skin/assets/pause.svg +0 -3
  106. package/src/skin/assets/play.svg +0 -3
  107. package/src/skin/assets/playNext.svg +0 -3
  108. package/src/skin/assets/reload.svg +0 -3
  109. package/src/skin/assets/replay.svg +0 -3
  110. package/src/skin/assets/requestCssFull.svg +0 -3
  111. package/src/skin/assets/requestFull.svg +0 -3
  112. package/src/skin/assets/rotate.svg +0 -11
  113. package/src/skin/assets/startPause.svg +0 -3
  114. package/src/skin/assets/startPlay.svg +0 -3
  115. package/src/skin/assets/volumeLarge.svg +0 -4
  116. package/src/skin/assets/volumeMuted.svg +0 -4
  117. package/src/skin/assets/volumeSmall.svg +0 -4
  118. package/src/skin/controls/airplay.js +0 -44
  119. package/src/skin/controls/cssFullscreen.js +0 -36
  120. package/src/skin/controls/danmu.js +0 -214
  121. package/src/skin/controls/definition.js +0 -251
  122. package/src/skin/controls/download.js +0 -29
  123. package/src/skin/controls/enter.js +0 -21
  124. package/src/skin/controls/error.js +0 -57
  125. package/src/skin/controls/flex.js +0 -13
  126. package/src/skin/controls/fullscreen.js +0 -43
  127. package/src/skin/controls/i18n.js +0 -168
  128. package/src/skin/controls/loading.js +0 -17
  129. package/src/skin/controls/localPreview.js +0 -18
  130. package/src/skin/controls/memoryPlay.js +0 -39
  131. package/src/skin/controls/miniplayer.js +0 -26
  132. package/src/skin/controls/nativeTextTrack.js +0 -153
  133. package/src/skin/controls/pip.js +0 -26
  134. package/src/skin/controls/play.js +0 -43
  135. package/src/skin/controls/playNext.js +0 -41
  136. package/src/skin/controls/playbackRate.js +0 -141
  137. package/src/skin/controls/poster.js +0 -18
  138. package/src/skin/controls/progress.js +0 -407
  139. package/src/skin/controls/reload.js +0 -29
  140. package/src/skin/controls/replay.js +0 -56
  141. package/src/skin/controls/rotate.js +0 -29
  142. package/src/skin/controls/screenShot.js +0 -27
  143. package/src/skin/controls/start.js +0 -62
  144. package/src/skin/controls/textTrack.js +0 -113
  145. package/src/skin/controls/time.js +0 -40
  146. package/src/skin/controls/volume.js +0 -63
  147. package/src/skin/index.js +0 -63
  148. package/src/skin/style/common/animation.scss +0 -16
  149. package/src/skin/style/common/svg-url.scss +0 -70
  150. package/src/skin/style/controls/airplay.scss +0 -35
  151. package/src/skin/style/controls/controls.scss +0 -40
  152. package/src/skin/style/controls/cssfullscreen.scss +0 -103
  153. package/src/skin/style/controls/danmu.scss +0 -333
  154. package/src/skin/style/controls/definition.scss +0 -76
  155. package/src/skin/style/controls/download.scss +0 -45
  156. package/src/skin/style/controls/enter.scss +0 -55
  157. package/src/skin/style/controls/error.scss +0 -34
  158. package/src/skin/style/controls/fullscreen.scss +0 -60
  159. package/src/skin/style/controls/icon.scss +0 -12
  160. package/src/skin/style/controls/live.scss +0 -9
  161. package/src/skin/style/controls/loading.scss +0 -44
  162. package/src/skin/style/controls/memoryPlay.scss +0 -28
  163. package/src/skin/style/controls/miniplayer.scss +0 -104
  164. package/src/skin/style/controls/pip.scss +0 -42
  165. package/src/skin/style/controls/placeholder.scss +0 -7
  166. package/src/skin/style/controls/play.scss +0 -79
  167. package/src/skin/style/controls/playNext.scss +0 -44
  168. package/src/skin/style/controls/playbackRate.scss +0 -82
  169. package/src/skin/style/controls/poster.scss +0 -19
  170. package/src/skin/style/controls/progress.scss +0 -182
  171. package/src/skin/style/controls/reload.scss +0 -43
  172. package/src/skin/style/controls/replay.scss +0 -46
  173. package/src/skin/style/controls/rotate.scss +0 -41
  174. package/src/skin/style/controls/screenShot.scss +0 -42
  175. package/src/skin/style/controls/start.scss +0 -78
  176. package/src/skin/style/controls/textTrack.scss +0 -87
  177. package/src/skin/style/controls/time.scss +0 -24
  178. package/src/skin/style/controls/tips.scss +0 -24
  179. package/src/skin/style/controls/videoProxy.scss +0 -6
  180. package/src/skin/style/controls/volume.scss +0 -143
  181. package/src/skin/style/index.scss +0 -88
  182. package/src/utils/sniffer.js +0 -47
  183. package/src/utils/url.js +0 -10
  184. package/src/utils/util.js +0 -358
  185. package/src/utils/xgplayerTimeRange.js +0 -17
  186. package/src/version.js +0 -7
  187. package/version.json +0 -3
  188. package/webpack.config.js +0 -168
@@ -1,182 +0,0 @@
1
- import SubTitles from 'xgplayer-subtitles'
2
- const defaultStyle = {
3
- follow: true, // 是否跟随控制栏调整位置
4
- mode: 'stroke', // 字体显示模式,默认是描边
5
- followBottom: 50, // 跟随底部控制栏的高度
6
- fitVideo: true, // 是否跟随视频自动调整字号
7
- offsetBottom: 2, // 字幕距离画面底部百分比,默认2%
8
- baseSizeX: 49, // 横屏视频适配基准字号
9
- baseSizeY: 28, // 竖屏视频适配基准字号
10
- minSize: 16, // pc端最小字号
11
- minMobileSize: 13, // 移动端最小字号
12
- line: 'double', // 最大显示行数 single/double/three
13
- fontColor: '#fff' // 字体颜色
14
- }
15
-
16
- // function createSubTitle (textTrack, style = {}, defaultOpen = true) {
17
- // const config = {
18
- // subTitles: textTrack,
19
- // defaultOpen: defaultOpen
20
- // }
21
-
22
- // Object.keys(style).map(key => {
23
- // config[key] = style[key]
24
- // })
25
- // return new SubTitles(config)
26
- // }
27
-
28
- class XgSubtitles {
29
- constructor (player, list, style) {
30
- const subtitle = this.create(list, style, player.textTrackShowDefault)
31
- subtitle.attachPlayer(player)
32
- this.subtitle = subtitle
33
- this.player = player
34
- this.positionData = {
35
- vBottom: 0,
36
- marginBottom: 0
37
- }
38
- this.isActive = false
39
- this.followBottom = style.followBottom;
40
- ['onSubtitleResize', 'onFocus', 'onBlur'].map(item => {
41
- this[item] = this[item].bind(this)
42
- })
43
-
44
- if (player.controls && style.follow) {
45
- this.subtitle.on('resize', this.onSubtitleResize)
46
- player.on('focus', this.onFocus)
47
- player.on('blur', this.onBlur)
48
- }
49
- }
50
-
51
- create (textTrack, style = {}, defaultOpen = true) {
52
- const config = {
53
- subTitles: textTrack,
54
- defaultOpen: defaultOpen
55
- }
56
- Object.keys(style).map(key => {
57
- config[key] = style[key]
58
- })
59
- return new SubTitles(config)
60
- }
61
-
62
- switch (subtitle) {
63
- return this.subtitle.switch(subtitle)
64
- }
65
-
66
- switchOff () {
67
- return this.subtitle.switchOff()
68
- }
69
-
70
- setSubTitles (subtitles, showDefault, isNeedMove) {
71
- return this.subtitle.setSubTitles(subtitles, showDefault, isNeedMove)
72
- }
73
-
74
- onFocus () {
75
- const { marginBottom, vBottom } = this.positionData
76
- if (this.isActive || !marginBottom) {
77
- return
78
- }
79
- this.isActive = true
80
- let bottom = marginBottom + vBottom
81
- if (this.followBottom > bottom) {
82
- bottom = this.followBottom
83
- }
84
- this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)
85
- }
86
-
87
- onBlur () {
88
- this.isActive = false
89
- const bottom = this.positionData.vBottom + this.positionData.marginBottom
90
- this.subtitle && (this.subtitle.root.style.bottom = `${bottom}px`)
91
- }
92
-
93
- onSubtitleResize (data) {
94
- this.positionData.vBottom = data.vBottom
95
- this.positionData.marginBottom = data.marginBottom
96
- }
97
-
98
- destroy () {
99
- this.subtitle.off('resize', this.onSubtitleResize)
100
- this.player.off('focus', this.onFocus)
101
- this.player.off('blur', this.onBlur)
102
- this.subtitle.destroy()
103
- this.subtitle = null
104
- }
105
- }
106
-
107
- let textTrack = function () {
108
- const player = this
109
- const { textTrack } = player.config
110
- if (!textTrack) {
111
- return
112
- }
113
- let textTrackStyle = player.config.textTrackStyle || {}
114
- Object.keys(defaultStyle).map(key => {
115
- if (textTrackStyle[key] === undefined) {
116
- textTrackStyle[key] = defaultStyle[key]
117
- }
118
- })
119
- player.textTrackShowDefault = false
120
- player.config.textTrack.map((item, index) => {
121
- if (!item.id && !item.language) {
122
- item.id = index
123
- }
124
- !item.url && (item.url = item.src)
125
- !item.language && (item.language = item.srclang)
126
- item.isDefault === undefined && (item.isDefault = item.default)
127
- !player.textTrackShowDefault && (player.textTrackShowDefault = item.isDefault || item.default)
128
- })
129
-
130
- this.subTitles = new XgSubtitles(player, player.config.textTrack, textTrackStyle)
131
-
132
- player.setSubTitles = (textTrack, needRemove = true) => {
133
- let showDefault = false
134
- textTrack.map((item, index) => {
135
- if (!item.id && !item.language) {
136
- item.id = index
137
- }
138
- !item.url && (item.url = item.src)
139
- !item.language && (item.language = item.srclang)
140
- item.isDefault === undefined && (item.isDefault = item.default)
141
- item.isDefault && (showDefault = true)
142
- })
143
- player.textTrackShowDefault = showDefault
144
- this.subTitles.setSubTitles(textTrack, showDefault, needRemove)
145
- player.emit('subtitle_change', {
146
- off: false,
147
- isListUpdate: true,
148
- list: textTrack
149
- })
150
- }
151
-
152
- player.switchSubTitle = (subtitle = { id: '', language: '' }) => {
153
- this.subTitles.switch(subtitle).then(data => {
154
- if (data.code === 0) {
155
- subtitle.off = false
156
- subtitle.isListUpdate = false
157
- subtitle.list = []
158
- player.emit('subtitle_change', subtitle)
159
- }
160
- })
161
- }
162
-
163
- player.switchOffSubtile = () => {
164
- this.subTitles.switchOff()
165
- player.emit('subtitle_change', {
166
- off: true,
167
- isListUpdate: false,
168
- list: []
169
- })
170
- }
171
-
172
- function onDestroy () {
173
- this.subTitles.destroy()
174
- this.subTitles = null
175
- }
176
- player.once('destroy', onDestroy)
177
- }
178
-
179
- export default {
180
- name: 'textTrack',
181
- method: textTrack
182
- }
@@ -1,178 +0,0 @@
1
- import { addClass, removeClass, event } from '../utils/util'
2
- import sniffer from '../utils/sniffer'
3
-
4
- let volume = function () {
5
- let player = this
6
- let root = player.root
7
- let container, slider, bar, selected
8
- function onCanplay () {
9
- // player.volume = sniffer.device === 'mobile' ? 1 : player.config.volume
10
- if(!player.controls) return
11
- player.volume = player.config.volume
12
- container = player.controls.querySelector('.xgplayer-volume')
13
- if(!container) return
14
- slider = container.querySelector('.xgplayer-slider')
15
- bar = container.querySelector('.xgplayer-bar')
16
- selected = container.querySelector('.xgplayer-drag')
17
- if (sniffer.device === 'mobile') {
18
- if(player.volume === 0) {
19
- player.video.muted = true
20
- }
21
- onVolumeChange()
22
- }
23
- }
24
- player.once('canplay', onCanplay)
25
-
26
- function onVolumeBarClick (e) {
27
- if(!slider) return
28
- player.video.muted = false
29
- slider.focus()
30
- event(e)
31
-
32
- let barRect = bar.getBoundingClientRect()
33
- let pos = {x: e.clientX, y: e.clientY}
34
- let height = selected.getBoundingClientRect().height
35
- let isMove = false
36
- let onMove = function (e) {
37
- e.preventDefault()
38
- e.stopPropagation()
39
- event(e)
40
- isMove = true
41
- let w = height - e.clientY + pos.y
42
- let now = w / barRect.height
43
- selected.style.height = `${w}px`
44
- player.volume = Math.max(Math.min(now, 1), 0)
45
- }
46
- let onUp = function (e) {
47
- e.preventDefault()
48
- e.stopPropagation()
49
- event(e)
50
- window.removeEventListener('mousemove', onMove)
51
- window.removeEventListener('touchmove', onMove)
52
- window.removeEventListener('mouseup', onUp)
53
- window.removeEventListener('touchend', onUp)
54
-
55
- if (!isMove) {
56
- let w = barRect.height - (e.clientY - barRect.top)
57
- let now = w / barRect.height
58
- selected.style.height = `${w}px`
59
- if (now <= 0) {
60
- if (player.volume > 0) {
61
- selected.volume = player.video.volume
62
- } else {
63
- now = selected.volume
64
- }
65
- }
66
- player.volume = Math.max(Math.min(now, 1), 0)
67
- }
68
- slider.volume = player.volume
69
- isMove = false
70
- }
71
- window.addEventListener('mousemove', onMove)
72
- window.addEventListener('touchmove', onMove)
73
- window.addEventListener('mouseup', onUp)
74
- window.addEventListener('touchend', onUp)
75
- return false
76
- }
77
- player.on('volumeBarClick', onVolumeBarClick)
78
-
79
- function onVolumeIconClick () {
80
- if (sniffer.device === 'mobile') {
81
- if (player.video.muted) {
82
- player.video.muted = false
83
- player.emit('unmute')
84
- player.volume = 1
85
- } else {
86
- player.video.muted = true
87
- player.emit('mute')
88
- player.volume = 0
89
- }
90
- } else {
91
- if(!slider) return
92
- player.video.muted = false
93
- if (player.volume < 0.1) {
94
- if (slider.volume < 0.1) {
95
- player.volume = 0.6
96
- } else {
97
- player.volume = slider.volume
98
- }
99
- player.emit('unmute')
100
- } else {
101
- player.volume = 0
102
- player.emit('mute')
103
- }
104
- }
105
- // onVolumeChange ()
106
- }
107
- player.on('volumeIconClick', onVolumeIconClick)
108
-
109
- function onVolumeIconEnter () {
110
- addClass(root, 'xgplayer-volume-active')
111
- if (container) {
112
- container.focus()
113
- }
114
- }
115
- player.on('volumeIconEnter', onVolumeIconEnter)
116
-
117
- function onVolumeIconLeave () {
118
- removeClass(root, 'xgplayer-volume-active')
119
- }
120
- player.on('volumeIconLeave', onVolumeIconLeave)
121
-
122
- let _changeTimer = null
123
- function onVolumeChange () {
124
- if (_changeTimer) {
125
- clearTimeout(_changeTimer)
126
- }
127
- _changeTimer = setTimeout(() => {
128
- if (sniffer.device === 'mobile') {
129
- removeClass(root, 'xgplayer-volume-muted')
130
- removeClass(root, 'xgplayer-volume-large')
131
- if (player.video.muted || player.video.defaultMuted) {
132
- if (!player.video.muted) {
133
- player.video.muted = true
134
- }
135
- player.video.defaultMuted = false
136
- addClass(root, 'xgplayer-volume-muted')
137
- } else {
138
- addClass(root, 'xgplayer-volume-large')
139
- }
140
- } else {
141
- removeClass(root, 'xgplayer-volume-muted')
142
- removeClass(root, 'xgplayer-volume-small')
143
- removeClass(root, 'xgplayer-volume-large')
144
- if (player.volume === 0 || player.muted) {
145
- addClass(root, 'xgplayer-volume-muted')
146
- } else if (player.volume < 0.5) {
147
- addClass(root, 'xgplayer-volume-small')
148
- } else {
149
- addClass(root, 'xgplayer-volume-large')
150
- }
151
- if (!bar) return
152
- let containerHeight = bar.getBoundingClientRect().height || 76
153
- selected.style.height = `${player.volume * containerHeight}px`
154
- }
155
- }, 50)
156
- }
157
- player.on('volumechange', onVolumeChange)
158
-
159
- function onDestroy () {
160
- player.off('canplay', onCanplay)
161
- player.off('volumeBarClick', onVolumeBarClick)
162
- player.off('volumeIconClick', onVolumeIconClick)
163
- player.off('volumeIconEnter', onVolumeIconEnter)
164
- player.off('volumeIconLeave', onVolumeIconLeave)
165
- player.off('volumechange', onVolumeChange)
166
- player.off('destroy', onDestroy)
167
- if (_changeTimer) {
168
- clearTimeout(_changeTimer);
169
- _changeTimer = null;
170
- }
171
- }
172
- player.once('destroy', onDestroy)
173
- }
174
-
175
- export default {
176
- name: 'volume',
177
- method: volume
178
- }
package/src/controls.js DELETED
@@ -1,36 +0,0 @@
1
- import * as Controls from './controls/*.js'
2
- import * as Skin from './skin/controls/*.js';
3
-
4
- let keyList = []
5
- for (let k in Controls.controls) {
6
- keyList.push(k)
7
- }
8
- for (let k in Skin.skin.controls) {
9
- if(keyList.indexOf(k) < 0) {
10
- keyList.push(k)
11
- }
12
- }
13
- let controls = {}
14
- keyList.forEach(item => {
15
- controls[item] = {
16
- name: item
17
- }
18
- if(Controls.controls[item]) {
19
- if(Skin.skin.controls[item]) {
20
- controls[item].method = function () {
21
- Controls.controls[item].method.call(this)
22
- Skin.skin.controls[item].method.call(this)
23
- }
24
- } else {
25
- controls[item].method = function () {
26
- Controls.controls[item].method.call(this)
27
- }
28
- }
29
- } else {
30
- controls[item].method = function () {
31
- Skin.skin.controls[item].method.call(this)
32
- }
33
- }
34
- })
35
-
36
- export default controls
@@ -1,13 +0,0 @@
1
- import Player from './player'
2
-
3
- import Mobile from './controls/mobile'
4
- import Pc from './controls/pc'
5
- import Start from './controls/start'
6
- import S_start from './skin/controls/start'
7
-
8
- let controlLst = [Mobile, Pc, Start, S_start]
9
- controlLst.forEach(function(control) {
10
- Player.install(control.name, control.method)
11
- })
12
-
13
- export default Player
package/src/error.js DELETED
@@ -1,74 +0,0 @@
1
- import {version} from '../version.json'
2
- const ErrorTypes = {
3
- network: {
4
- code: 1,
5
- msg: '视频下载错误',
6
- remark: '只要视频下载错误就使用此类型,无论是video本身的超时还是xhr的分段请求超时或者资源不存在'
7
- },
8
- mse: {
9
- code: 2,
10
- msg: '流追加错误',
11
- remark: '追加流的时候如果类型不对、无法被正确解码则会触发此类错误'
12
- },
13
- parse: {
14
- code: 3,
15
- msg: '解析错误',
16
- remark: 'mp4、hls、flv我们都是使用js进行格式解析,如果解析失败则会触发此类错误'
17
- },
18
- format: {
19
- code: 4,
20
- msg: '格式错误',
21
- remark: '如果浏览器不支持的格式导致播放错误'
22
- },
23
- decoder: {
24
- code: 5,
25
- msg: '解码错误',
26
- remark: '浏览器解码异常会抛出此类型错误'
27
- },
28
- runtime: {
29
- code: 6,
30
- msg: '语法错误',
31
- remark: '播放器语法错误'
32
- },
33
- timeout: {
34
- code: 7,
35
- msg: '播放超时',
36
- remark: '播放过程中无法正常请求下一个分段导致播放中断'
37
- },
38
- other: {
39
- code: 8,
40
- msg: '其他错误',
41
- remark: '不可知的错误或被忽略的错误类型'
42
- }
43
- }
44
-
45
- class Errors {
46
- constructor (type, currentTime, duration, networkState, readyState, src, currentSrc,
47
- ended, errd = {line: '', handle: '', msg: '', version: ''}, errorCode, mediaError) {
48
- let r = {}
49
- if (arguments.length > 1) {
50
- r.playerVersion = version // 播放器版本
51
- r.errorType = type
52
- r.domain = document.domain // domain
53
- r.duration = duration // 视频时长
54
- r.currentTime = currentTime
55
- r.networkState = networkState
56
- r.readyState = readyState
57
- r.currentSrc = currentSrc
58
- r.src = src
59
- r.ended = ended
60
- r.errd = errd // 错误详情
61
- r.ex = (ErrorTypes[type] || {}).msg // 补充信息
62
- r.errorCode = errorCode
63
- r.mediaError = mediaError
64
- } else {
65
- const arg = arguments[0]
66
- Object.keys(arg).map(key => {
67
- r[key] = arg[key]
68
- })
69
- r.ex = ((arg.type && ErrorTypes[arg.type]) || {}).msg
70
- }
71
- return r
72
- }
73
- }
74
- export default Errors
package/src/index.js DELETED
@@ -1,57 +0,0 @@
1
- import Player from './player'
2
-
3
- import Airplay from './controls/airplay.js'
4
- import CssFullscreen from './controls/cssFullscreen.js'
5
- import Danmu from './controls/danmu.js'
6
- import Definition from './controls/definition.js'
7
- import Download from './controls/download.js'
8
- import ErrorRetryControl from './controls/errorRetry.js'
9
- import Fullscreen from './controls/fullscreen.js'
10
- import Keyboard from './controls/keyboard.js'
11
- import LocalPreview from './controls/localPreview.js'
12
- import MemoryPlay from './controls/memoryPlay.js'
13
- import Miniplayer from './controls/miniplayer.js'
14
- import Mobile from './controls/mobile.js'
15
- import Pc from './controls/pc.js'
16
- import Pip from './controls/pip.js'
17
- import Play from './controls/play.js'
18
- import PlayNext from './controls/playNext.js'
19
- import Reload from './controls/reload.js'
20
- import Replay from './controls/replay.js'
21
- import Rotate from './controls/rotate.js'
22
- import ScreenShot from './controls/screenShot.js'
23
- import StallCheck from './controls/stallCheck.js'
24
- import Start from './controls/start.js'
25
- import Volume from './controls/volume.js'
26
- import TextTrack from './controls/textTrack.js'
27
-
28
- Player.installAll([
29
- Airplay,
30
- CssFullscreen,
31
- Danmu,
32
- Definition,
33
- Download,
34
- ErrorRetryControl,
35
- Fullscreen,
36
- Keyboard,
37
- LocalPreview,
38
- MemoryPlay,
39
- Miniplayer,
40
- Mobile,
41
- Pc,
42
- Pip,
43
- Play,
44
- PlayNext,
45
- Reload,
46
- Replay,
47
- Rotate,
48
- ScreenShot,
49
- StallCheck,
50
- Start,
51
- Volume,
52
- TextTrack
53
- ])
54
-
55
- import './skin/index.js';
56
-
57
- export default Player