@x-edu/live-player 0.0.29 → 0.0.30

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 (303) hide show
  1. package/.browserslistrc +10 -10
  2. package/.eslintignore +8 -8
  3. package/.eslintrc.js +26 -26
  4. package/.postcssrc.js +6 -6
  5. package/README.md +145 -145
  6. package/babel.config.js +33 -33
  7. package/dist/XEduLivePlayer.common.js +1231 -11338
  8. package/dist/XEduLivePlayerPre.common.js +1242 -11360
  9. package/doc/develop.md +23 -23
  10. package/gem-mine.config.js +86 -86
  11. package/jest.config.js +9 -9
  12. package/jsconfig.json +15 -15
  13. package/mock/helper.js +8 -8
  14. package/mock/index.js +34 -34
  15. package/package.json +100 -100
  16. package/public/3rd/ali-player/alipayercomponents-1.0.8.min.js +26 -26
  17. package/public/3rd/ali-player/aliplayer-hls-min.js +27 -27
  18. package/public/3rd/ali-player/aliplayer-min.js +1 -1
  19. package/public/3rd/im-web-push/index.umd.js +14 -14
  20. package/public/fish/editor/themes/default/css/ueditor.css +1905 -1905
  21. package/public/fish/editor/third-party/codemirror/codemirror.css +104 -104
  22. package/public/fish/editor/third-party/codemirror/codemirror.js +3581 -3581
  23. package/public/fish/editor/third-party/zeroclipboard/ZeroClipboard.js +1255 -1255
  24. package/public/fish/editor/ueditor.all.min.js +16 -16
  25. package/public/fish/editor/ueditor.config.js +467 -467
  26. package/public/fish/icon/umd-4.1.2.js +1 -1
  27. package/public/fish/video/videoplayer.min.css +6 -6
  28. package/public/fish/video/videoplayer.min.js +31 -31
  29. package/public/fish/video/zh-CN.js +82 -82
  30. package/public/icon/demo.css +539 -539
  31. package/public/icon/demo_index.html +2189 -2189
  32. package/public/icon/iconfont.css +363 -363
  33. package/public/icon/iconfont.json +618 -618
  34. package/public/index.html +50 -50
  35. package/script/image/readme.md +77 -77
  36. package/script/postcss.js +48 -48
  37. package/src/App.jsx +24 -24
  38. package/src/asset/img/course/playing.svg +21 -21
  39. package/src/asset/img/icon-course-white.svg +3 -3
  40. package/src/asset/img/icon-course.svg +3 -3
  41. package/src/asset/img/icon-eye-white.svg +4 -4
  42. package/src/asset/img/icon-eye.svg +4 -4
  43. package/src/asset/img/icon-school-white.svg +3 -3
  44. package/src/asset/img/icon-school.svg +3 -3
  45. package/src/asset/img/loading.svg +52 -52
  46. package/src/asset/img/video-play.svg +6 -6
  47. package/src/asset/style/background.less +19 -19
  48. package/src/asset/style/banner.less +36 -36
  49. package/src/asset/style/base.less +74 -74
  50. package/src/asset/style/index.less +114 -114
  51. package/src/asset/style/reset-theme.less +141 -141
  52. package/src/asset/style/theme/index.less +55 -55
  53. package/src/asset/style/theme/party/global.less +20 -20
  54. package/src/asset/style/theme/party/override.less +57 -57
  55. package/src/asset/style/theme/test/global.less +18 -18
  56. package/src/asset/style/theme/test/override.less +45 -45
  57. package/src/asset/style/variable.less +12 -12
  58. package/src/component/AliPlayer/index.jsx +49 -49
  59. package/src/component/Avatar/index.jsx +50 -50
  60. package/src/component/Empty/index.jsx +34 -34
  61. package/src/component/Empty/index.module.less +37 -37
  62. package/src/component/IMChatroom/component/status/403.jsx +13 -13
  63. package/src/component/IMChatroom/component/status/404.jsx +13 -13
  64. package/src/component/IMChatroom/component/status/Error.jsx +23 -23
  65. package/src/component/IMChatroom/component/status/Loading.jsx +5 -5
  66. package/src/component/IMChatroom/config/app/config.js +118 -118
  67. package/src/component/IMChatroom/config/app/index.js +60 -60
  68. package/src/component/IMChatroom/config/env.js +5 -5
  69. package/src/component/IMChatroom/config/index.js +3 -3
  70. package/src/component/IMChatroom/config/request/config/base.js +124 -124
  71. package/src/component/IMChatroom/config/request/config/chatroom.js +26 -26
  72. package/src/component/IMChatroom/config/request/config/imCoreApi.js +21 -21
  73. package/src/component/IMChatroom/config/request/index.js +21 -21
  74. package/src/component/IMChatroom/config/request/proxy.js +39 -39
  75. package/src/component/IMChatroom/config/url.js +7 -7
  76. package/src/component/IMChatroom/constants/errorCode.js +9 -9
  77. package/src/component/IMChatroom/constants/index.js +84 -84
  78. package/src/component/IMChatroom/constants/origin.js +27 -27
  79. package/src/component/IMChatroom/context/chatroom.js +154 -154
  80. package/src/component/IMChatroom/context/connect.js +28 -28
  81. package/src/component/IMChatroom/i18n/en/index.json +73 -73
  82. package/src/component/IMChatroom/i18n/index.jsx +14 -14
  83. package/src/component/IMChatroom/i18n/language.js +9 -9
  84. package/src/component/IMChatroom/i18n/zh-CN/index.json +73 -73
  85. package/src/component/IMChatroom/index.jsx +49 -49
  86. package/src/component/IMChatroom/page/chat/index.jsx +27 -27
  87. package/src/component/IMChatroom/page/chat/messageEditor/index.jsx +375 -375
  88. package/src/component/IMChatroom/page/chat/messageList/index.jsx +354 -354
  89. package/src/component/IMChatroom/page/chat/stickedMessage/index.jsx +59 -59
  90. package/src/component/IMChatroom/page/chat/stickedMessage/style/index.module.less +7 -7
  91. package/src/component/IMChatroom/page/chat/style/index.module.less +51 -51
  92. package/src/component/IMChatroom/page/home/connect/index.jsx +188 -188
  93. package/src/component/IMChatroom/page/home/connect/status.jsx +124 -124
  94. package/src/component/IMChatroom/page/home/context/cmd.jsx +37 -37
  95. package/src/component/IMChatroom/page/home/context/index.jsx +67 -67
  96. package/src/component/IMChatroom/page/home/index.jsx +164 -164
  97. package/src/component/IMChatroom/page/home/notice/index.jsx +123 -123
  98. package/src/component/IMChatroom/page/home/notice/style/index.module.less +49 -49
  99. package/src/component/IMChatroom/page/home/style/index.module.less +110 -110
  100. package/src/component/IMChatroom/page/member/index.jsx +15 -15
  101. package/src/component/IMChatroom/page/member/memberCount/index.jsx +44 -44
  102. package/src/component/IMChatroom/page/member/memberList/index.jsx +121 -121
  103. package/src/component/IMChatroom/page/member/style/index.module.less +2 -2
  104. package/src/component/IMChatroom/sdk/bridge.js +39 -39
  105. package/src/component/IMChatroom/sdk/cs/constants.js +20 -20
  106. package/src/component/IMChatroom/sdk/cs/index.js +101 -101
  107. package/src/component/IMChatroom/sdk/imChatroom.js +15 -15
  108. package/src/component/IMChatroom/sdk/imcore/constants.js +128 -128
  109. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomDestroyed.js +5 -5
  110. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomInfoGetFail.js +5 -5
  111. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedByAdmin.js +5 -5
  112. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedBySelf.js +5 -5
  113. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginFail.js +5 -5
  114. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginSuccess.js +5 -5
  115. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogin.js +5 -5
  116. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogout.js +5 -5
  117. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnected.js +5 -5
  118. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnecting.js +5 -5
  119. package/src/component/IMChatroom/sdk/imcore/emitters/connectionDisconnect.js +5 -5
  120. package/src/component/IMChatroom/sdk/imcore/emitters/index.js +57 -57
  121. package/src/component/IMChatroom/sdk/imcore/emitters/messageReceive.js +36 -36
  122. package/src/component/IMChatroom/sdk/imcore/index.js +178 -178
  123. package/src/component/IMChatroom/sdk/imcore/interceptors/request.js +7 -7
  124. package/src/component/IMChatroom/sdk/imcore/interceptors/response.js +5 -5
  125. package/src/component/IMChatroom/sdk/imcore/plugins/getAuth.js +64 -64
  126. package/src/component/IMChatroom/sdk/imcore/plugins/getConversationId.js +20 -20
  127. package/src/component/IMChatroom/sdk/imcore/plugins/getExtInfo.js +10 -10
  128. package/src/component/IMChatroom/sdk/imcore/plugins/getLoginInfo.js +48 -48
  129. package/src/component/IMChatroom/sdk/imcore/plugins/getPlatformType.js +12 -12
  130. package/src/component/IMChatroom/sdk/imcore/plugins/index.js +22 -22
  131. package/src/component/IMChatroom/sdk/imcore/util/format.js +177 -177
  132. package/src/component/IMChatroom/sdk/imcore/util/parser.js +35 -35
  133. package/src/component/IMChatroom/sdk/oms.js +18 -18
  134. package/src/component/IMChatroom/sdk/uc.js +3 -3
  135. package/src/component/IMChatroom/subscription/channel/app.js +5 -5
  136. package/src/component/IMChatroom/subscription/channel/ctl.js +22 -22
  137. package/src/component/IMChatroom/subscription/channel/member.js +40 -40
  138. package/src/component/IMChatroom/subscription/channel/message.js +13 -13
  139. package/src/component/IMChatroom/subscription/channel/ntf.js +86 -86
  140. package/src/component/IMChatroom/subscription/channel/tel.js +5 -5
  141. package/src/component/IMChatroom/subscription/channel/websocket.js +5 -5
  142. package/src/component/IMChatroom/subscription/event.js +37 -37
  143. package/src/component/IMChatroom/subscription/index.js +19 -19
  144. package/src/component/IMChatroom/util/account.js +8 -8
  145. package/src/component/IMChatroom/util/chatroom.js +255 -255
  146. package/src/component/IMChatroom/util/jsonBigInt.js +5 -5
  147. package/src/component/IMChatroom/util/location.js +12 -12
  148. package/src/component/Icon/index.jsx +16 -16
  149. package/src/component/Icon/index.module.less +2 -2
  150. package/src/component/Pagination/LocalPagination.jsx +27 -27
  151. package/src/component/Pagination/RemotePagination.jsx +32 -32
  152. package/src/component/Pagination/index.jsx +32 -32
  153. package/src/component/Pagination/index.module.less +117 -117
  154. package/src/component/PlayerTip/index.jsx +34 -34
  155. package/src/component/VideoBase/index.jsx +242 -242
  156. package/src/component/VideoBase/style.less +65 -65
  157. package/src/component/VideoBase/utils.js +81 -81
  158. package/src/component/mixin.less +9 -9
  159. package/src/component/status/403.jsx +15 -15
  160. package/src/component/status/404/index.jsx +73 -73
  161. package/src/component/status/404/index.module.less +36 -36
  162. package/src/component/status/Error/error.module.less +13 -13
  163. package/src/component/status/Error/index.jsx +47 -47
  164. package/src/component/status/Loading/img/loading.svg +52 -52
  165. package/src/component/status/Loading/index.jsx +31 -31
  166. package/src/component/status/Loading/index.less +56 -56
  167. package/src/component/status/None/index.jsx +20 -20
  168. package/src/component/status/None/index.module.less +35 -35
  169. package/src/component/status/Status/index.jsx +26 -26
  170. package/src/component/status/Status/index.module.less +8 -8
  171. package/src/config/constant/commonUrl.js +2 -2
  172. package/src/config/constant/user.js +6 -6
  173. package/src/config/context/site-config.js +48 -48
  174. package/src/config/env/index.js +5 -5
  175. package/src/config/env/local/index.js +13 -13
  176. package/src/config/env/ncet-xedu/api.js +175 -175
  177. package/src/config/env/ncet-xedu/app.js +12 -12
  178. package/src/config/env/ncet-xedu/cs.js +8 -8
  179. package/src/config/env/ncet-xedu/index.js +14 -14
  180. package/src/config/env/ncet-xedu/push.js +5 -5
  181. package/src/config/env/preproduction/api.js +144 -144
  182. package/src/config/env/preproduction/app.js +12 -12
  183. package/src/config/env/preproduction/cs.js +8 -8
  184. package/src/config/env/preproduction/index.js +14 -14
  185. package/src/config/env/preproduction/push.js +5 -5
  186. package/src/config/env/product/api.js +113 -113
  187. package/src/config/env/product/app.js +12 -12
  188. package/src/config/env/product/cs.js +5 -5
  189. package/src/config/env/product/index.js +14 -14
  190. package/src/config/env/product/push.js +5 -5
  191. package/src/config/live.js +80 -80
  192. package/src/config/publicLive.js +53 -53
  193. package/src/config/request/assessments.js +24 -24
  194. package/src/config/request/config-center.js +8 -8
  195. package/src/config/request/helper.js +166 -166
  196. package/src/config/request/im-broadcasts.js +12 -12
  197. package/src/config/request/live-activity-gateway.js +8 -8
  198. package/src/config/request/live-activity.js +13 -13
  199. package/src/config/request/raw.js +6 -6
  200. package/src/config/request/x-cloud-web.js +13 -13
  201. package/src/config/request/x-proxy.js +34 -34
  202. package/src/demo/Detail.jsx +11 -11
  203. package/src/demo/List.jsx +68 -68
  204. package/src/demo/index.jsx +17 -17
  205. package/src/detail/LineSwitch/index.jsx +71 -71
  206. package/src/detail/LiveCountDown/index.jsx +44 -44
  207. package/src/detail/LiveCountDown/index.module.less +31 -31
  208. package/src/detail/LiveOnlineCount/img/icon.svg +15 -15
  209. package/src/detail/LiveOnlineCount/index.jsx +68 -68
  210. package/src/detail/LiveOnlineCount/index.module.less +34 -34
  211. package/src/detail/LiveOnlineCount/util.js +74 -74
  212. package/src/detail/LiveStatus/AnchorOnTheWay.jsx +88 -88
  213. package/src/detail/LiveStatus/index.jsx +202 -202
  214. package/src/detail/LiveStatus/index.module.less +192 -192
  215. package/src/detail/LiveVideo/config.js +37 -37
  216. package/src/detail/LiveVideo/index.jsx +188 -188
  217. package/src/detail/LiveVideo/index.module.less +41 -41
  218. package/src/detail/NotLoginChatroom/index.jsx +37 -37
  219. package/src/detail/NotLoginChatroom/index.module.less +46 -46
  220. package/src/detail/RecordVideo/index.jsx +150 -150
  221. package/src/detail/RecordVideo/index.module.less +31 -31
  222. package/src/detail/ReplayVideo/index.jsx +93 -93
  223. package/src/detail/ReplayVideo/index.module.less +65 -65
  224. package/src/detail/const.js +20 -20
  225. package/src/detail/hook/usePullSource.js +82 -82
  226. package/src/detail/hook/usePullState.js +51 -51
  227. package/src/detail/index.jsx +482 -482
  228. package/src/detail/index.module.less +188 -188
  229. package/src/hook/useAsync.js +84 -84
  230. package/src/hook/useGoToPage.js +83 -83
  231. package/src/hook/useInterval.js +28 -28
  232. package/src/hook/useIsMounted.js +17 -17
  233. package/src/hook/useModuleByRole.js +53 -53
  234. package/src/hook/usePageScrollable.js +52 -52
  235. package/src/hook/usePortal.js +83 -83
  236. package/src/hook/useScrollRestore/index.js +32 -32
  237. package/src/hook/useScrollRestore/scrollContext.js +20 -20
  238. package/src/hook/useTrackRef.js +11 -11
  239. package/src/hook/useWindowSize.js +28 -28
  240. package/src/hook/useZoom.js +47 -47
  241. package/src/index.js +10 -10
  242. package/src/lib/getLiveOnlineCount.js +10 -10
  243. package/src/lib/getServiceConfig.js +102 -102
  244. package/src/list/Empty/index.jsx +20 -20
  245. package/src/list/Empty/index.module.less +23 -23
  246. package/src/list/ListItem/Action/index.jsx +109 -109
  247. package/src/list/ListItem/Action/index.module.less +19 -19
  248. package/src/list/ListItem/img/dianzan.svg +4 -4
  249. package/src/list/ListItem/img/like-fill.svg +8 -8
  250. package/src/list/ListItem/img/play.svg +15 -15
  251. package/src/list/ListItem/img/view-fill.svg +8 -8
  252. package/src/list/ListItem/img/yiguankan.svg +3 -3
  253. package/src/list/ListItem/index.jsx +135 -135
  254. package/src/list/ListItem/index.module.less +158 -158
  255. package/src/list/index.jsx +240 -240
  256. package/src/list/index.module.less +38 -38
  257. package/src/service/common.js +73 -73
  258. package/src/service/content-mgr.js +73 -73
  259. package/src/service/im-group.js +12 -12
  260. package/src/service/im.js +7 -7
  261. package/src/service/imBroadcasts.js +33 -33
  262. package/src/service/like.js +134 -134
  263. package/src/service/live.js +293 -293
  264. package/src/service/manageApi.js +7 -7
  265. package/src/service/managePortal.js +6 -6
  266. package/src/service/myStudyRecord.js +93 -93
  267. package/src/service/navigation.js +47 -47
  268. package/src/service/ndMeeting.js +10 -10
  269. package/src/service/ndr.js +122 -122
  270. package/src/service/news.js +93 -93
  271. package/src/service/personalCenter.js +270 -270
  272. package/src/service/qualityCourse.js +31 -31
  273. package/src/service/recommend.js +81 -81
  274. package/src/service/school.js +323 -323
  275. package/src/service/search.js +170 -170
  276. package/src/service/site-config.js +7 -7
  277. package/src/service/socialCensor.js +45 -45
  278. package/src/service/specialEdu.js +31 -31
  279. package/src/service/suggestion.js +85 -85
  280. package/src/service/syncClassroom.js +321 -321
  281. package/src/service/tCourse.js +204 -204
  282. package/src/service/tchTraining.js +37 -37
  283. package/src/service/uc.js +45 -45
  284. package/src/util/app.js +1 -1
  285. package/src/util/array.js +3 -3
  286. package/src/util/auth/func.js +57 -57
  287. package/src/util/date.js +53 -53
  288. package/src/util/env.js +9 -9
  289. package/src/util/getTimestamp.js +10 -10
  290. package/src/util/hof.js +105 -105
  291. package/src/util/live/index.js +42 -42
  292. package/src/util/liveCountUtil.js +52 -52
  293. package/src/util/netUrl.js +35 -35
  294. package/src/util/object.js +13 -13
  295. package/src/util/push/index.js +58 -58
  296. package/src/util/request.js +227 -227
  297. package/src/util/type.js +17 -17
  298. package/src/util/url.js +203 -203
  299. package/src/util/video.js +26 -26
  300. package/test/setup.js +21 -21
  301. package/test/unit/component/header/logo.spec.jsx +8 -8
  302. package/test/unit/helper.jsx +25 -25
  303. package/test/unit/util/date.spec.js +40 -40
package/.browserslistrc CHANGED
@@ -1,10 +1,10 @@
1
- [development]
2
- last 2 chrome versions
3
-
4
- [production]
5
- chrome >= 63
6
- ie >= 11
7
- edge > 18
8
- Safari >= 13
9
- last 2 firefox versions
10
- last 2 Opera versions
1
+ [development]
2
+ last 2 chrome versions
3
+
4
+ [production]
5
+ chrome >= 63
6
+ ie >= 11
7
+ edge > 18
8
+ Safari >= 13
9
+ last 2 firefox versions
10
+ last 2 Opera versions
package/.eslintignore CHANGED
@@ -1,8 +1,8 @@
1
- /dist
2
- /node_modules
3
- /public
4
- /src/vendor
5
- /src/page/tchTraining/Honour/Detail/const/introduction.js
6
- /src/page/teacherStudio/data
7
- /src/page/teacherStudioAdmin/subPage/resource/subPage/edit/lib/
8
- /src/page/recommend/legacy
1
+ /dist
2
+ /node_modules
3
+ /public
4
+ /src/vendor
5
+ /src/page/tchTraining/Honour/Detail/const/introduction.js
6
+ /src/page/teacherStudio/data
7
+ /src/page/teacherStudioAdmin/subPage/resource/subPage/edit/lib/
8
+ /src/page/recommend/legacy
package/.eslintrc.js CHANGED
@@ -1,26 +1,26 @@
1
- module.exports = {
2
- extends: ['@gem-mine/recommend'],
3
- rules: {
4
- 'global-require': 0,
5
- 'import/prefer-default-export': 'off',
6
- // 禁止不必要的尾逗号
7
- 'comma-dangle': ['error', 'never'],
8
- // 行最大宽度
9
- 'max-len': ['error', {
10
- tabWidth: 2,
11
- code: 256
12
- }],
13
- 'object-curly-newline': ['error', {
14
- // 对象字面量,非空对象时必须换行
15
- ObjectExpression: {
16
- minProperties: 1
17
- }
18
- }],
19
- // 对象字面量属性必须换行编写
20
- 'object-property-newline': ['error', {
21
- allowAllPropertiesOnSameLine: false
22
- }],
23
- // 允许使用 | & ~ 运算符
24
- 'no-bitwise': 0
25
- }
26
- }
1
+ module.exports = {
2
+ extends: ['@gem-mine/recommend'],
3
+ rules: {
4
+ 'global-require': 0,
5
+ 'import/prefer-default-export': 'off',
6
+ // 禁止不必要的尾逗号
7
+ 'comma-dangle': ['error', 'never'],
8
+ // 行最大宽度
9
+ 'max-len': ['error', {
10
+ tabWidth: 2,
11
+ code: 256
12
+ }],
13
+ 'object-curly-newline': ['error', {
14
+ // 对象字面量,非空对象时必须换行
15
+ ObjectExpression: {
16
+ minProperties: 1
17
+ }
18
+ }],
19
+ // 对象字面量属性必须换行编写
20
+ 'object-property-newline': ['error', {
21
+ allowAllPropertiesOnSameLine: false
22
+ }],
23
+ // 允许使用 | & ~ 运算符
24
+ 'no-bitwise': 0
25
+ }
26
+ }
package/.postcssrc.js CHANGED
@@ -1,6 +1,6 @@
1
- module.exports = {
2
- plugins: [
3
- require('./script/postcss'),
4
- require('autoprefixer')
5
- ]
6
- }
1
+ module.exports = {
2
+ plugins: [
3
+ require('./script/postcss'),
4
+ require('autoprefixer')
5
+ ]
6
+ }
package/README.md CHANGED
@@ -1,146 +1,146 @@
1
- # 直播播放器
2
-
3
- 初版,API可能后续会大幅调整
4
-
5
- ## Demo
6
- ### PublicLiveDetail 直播详情页
7
-
8
- ```jsx
9
- import { PublicLiveDetail, getLiveOnlineCount } from '@x-edu/live-player'
10
- import React, { useContext } from 'react'
11
- import style from './style.module.less'
12
- import { getLoginUrl, uc } from '@/util/auth/func'
13
- import UserContext from '@/component/Login/UserContext'
14
- import { sensorsTrack } from '@/util/sensorsTracking'
15
-
16
- export default function LiveTest() {
17
- const loginInfo = useContext(UserContext)
18
-
19
- // 获取直播人数请在直播开始之后调用并显示
20
- // 直播结束之后也不应显示
21
- useEffect(() => {
22
- const test = async () => {
23
- const count = await getLiveOnlineCount('13aafbce-8ca2-4587-bc6e-eab183c9d5b6')
24
- console.log(count)
25
- }
26
- test()
27
- }, [])
28
-
29
- // 部分直播需要登录后才可以播放,这是要求登录的回调
30
- const handleLogin = () => {
31
- window.location.href = getLoginUrl()
32
- }
33
- // 直播人数获取后调用,注意直播开始后才有本数据
34
- const handleoOnlineCountChange = (currentCount) => {
35
- console.log(currentCount)
36
- }
37
- // 直播状态发生变化后触发本事件
38
- const handleStateChange = (liveInfo) => {
39
- console.log(liveInfo)
40
- }
41
-
42
- // 登录后上报强师额外上报信息
43
- const handleReportProgress = () => {}
44
- // 登录且播放后上报强师额外上报信息
45
- const handleReportTeacherTrain = () => {}
46
-
47
- const handleSensors = (sensorInfo) => {
48
- sensorsTrack(sensorInfo)
49
- }
50
-
51
- return (
52
- <div
53
- style={{
54
- height: '800px',
55
- width: '1200px'
56
- }}
57
- >
58
- <PublicLiveDetail
59
- className={style.live}
60
- containerClassName={style.container}
61
- infoClassName={style.info}
62
- playerClassName={style.player}
63
- descriptionClassName={style.desc}
64
- liveId="13aafbce-8ca2-4587-bc6e-eab183c9d5b6"
65
- appId="e5649925-441d-4a53-b525-51a2f1c4e0a8"
66
- uc={uc}
67
- loginInfo={loginInfo}
68
- handleLogin={handleLogin}
69
- onOnlineCountChange={handleoOnlineCountChange}
70
- onStateChange={handleStateChange}
71
- onReportProgress={handleReportProgress}
72
- onReportTeacherTrain={handleReportTeacherTrain}
73
- onSendSensors={handleSensors}
74
- />
75
- </div>
76
- )
77
- }
78
- ```
79
-
80
- ```less
81
- .container {
82
- width: 100%;
83
- height: 100%
84
- }
85
-
86
- .live {
87
- padding: 0 !important;
88
- margin: 0;
89
- }
90
-
91
- .info {
92
- display: none;
93
- }
94
-
95
- .desc {
96
- display: none;
97
- }
98
- ```
99
-
100
- ### 直播列表页
101
- ```jsx
102
- import { PublicLiveList } from '@x-edu/live-player'
103
- import React, { useContext } from 'react'
104
- import style from './style.module.less'
105
- import { getLoginUrl, uc } from '@/util/auth/func'
106
- import UserContext from '@/component/Login/UserContext'
107
-
108
- export default function LiveTest() {
109
- const loginInfo = useContext(UserContext)
110
-
111
- // 部分直播需要登录后才可以播放,这是要求登录的回调
112
- const handleLogin = (item) => {
113
- // 处理必须登陆的情况
114
- window.location.href = getLoginUrl()
115
- }
116
-
117
- const handleDetailClick = (item) => {
118
- // 根据 item 决定怎么跳转详情页
119
- // 默认跳转中小学直播详情 window.open(`https://basic.smartedu.cn/publicLive/${liveId}}`)
120
- }
121
-
122
- return (
123
- <div>
124
- <PublicLiveList
125
- scopeType='e_teacher_studio' // 适用范围,如名师工作室:e_teacher_studio 机构工作室:e_inst_studio 专家工作室:e_expert_studio 精准匹配
126
- scopeId='xxx' // 适用id,如专家工作室id 精准匹配,必须有scope_type才生效
127
- containerClassName={style.container} // 容器样式
128
- uc={uc} // 登陆状态下必填
129
- loginInfo={loginInfo} // 登陆状态下必填,特别的里面的 userInfo
130
- handleLogin={handleLogin} // 用于需要强制登陆的回调,会传传入当前直播作为参数
131
- onDetailClick={handleDetailClick}
132
- />
133
- </div>
134
- )
135
- }
136
- ```
137
-
138
- ## 预生产
139
-
140
- ```js
141
- import {
142
- PublicLiveDetail,
143
- getLiveOnlineCount,
144
- PublicLiveList
145
- } from '@x-edu/live-player/dist/XEduLivePlayerPre.common'
1
+ # 直播播放器
2
+
3
+ 初版,API可能后续会大幅调整
4
+
5
+ ## Demo
6
+ ### PublicLiveDetail 直播详情页
7
+
8
+ ```jsx
9
+ import { PublicLiveDetail, getLiveOnlineCount } from '@x-edu/live-player'
10
+ import React, { useContext } from 'react'
11
+ import style from './style.module.less'
12
+ import { getLoginUrl, uc } from '@/util/auth/func'
13
+ import UserContext from '@/component/Login/UserContext'
14
+ import { sensorsTrack } from '@/util/sensorsTracking'
15
+
16
+ export default function LiveTest() {
17
+ const loginInfo = useContext(UserContext)
18
+
19
+ // 获取直播人数请在直播开始之后调用并显示
20
+ // 直播结束之后也不应显示
21
+ useEffect(() => {
22
+ const test = async () => {
23
+ const count = await getLiveOnlineCount('13aafbce-8ca2-4587-bc6e-eab183c9d5b6')
24
+ console.log(count)
25
+ }
26
+ test()
27
+ }, [])
28
+
29
+ // 部分直播需要登录后才可以播放,这是要求登录的回调
30
+ const handleLogin = () => {
31
+ window.location.href = getLoginUrl()
32
+ }
33
+ // 直播人数获取后调用,注意直播开始后才有本数据
34
+ const handleoOnlineCountChange = (currentCount) => {
35
+ console.log(currentCount)
36
+ }
37
+ // 直播状态发生变化后触发本事件
38
+ const handleStateChange = (liveInfo) => {
39
+ console.log(liveInfo)
40
+ }
41
+
42
+ // 登录后上报强师额外上报信息
43
+ const handleReportProgress = () => {}
44
+ // 登录且播放后上报强师额外上报信息
45
+ const handleReportTeacherTrain = () => {}
46
+
47
+ const handleSensors = (sensorInfo) => {
48
+ sensorsTrack(sensorInfo)
49
+ }
50
+
51
+ return (
52
+ <div
53
+ style={{
54
+ height: '800px',
55
+ width: '1200px'
56
+ }}
57
+ >
58
+ <PublicLiveDetail
59
+ className={style.live}
60
+ containerClassName={style.container}
61
+ infoClassName={style.info}
62
+ playerClassName={style.player}
63
+ descriptionClassName={style.desc}
64
+ liveId="13aafbce-8ca2-4587-bc6e-eab183c9d5b6"
65
+ appId="e5649925-441d-4a53-b525-51a2f1c4e0a8"
66
+ uc={uc}
67
+ loginInfo={loginInfo}
68
+ handleLogin={handleLogin}
69
+ onOnlineCountChange={handleoOnlineCountChange}
70
+ onStateChange={handleStateChange}
71
+ onReportProgress={handleReportProgress}
72
+ onReportTeacherTrain={handleReportTeacherTrain}
73
+ onSendSensors={handleSensors}
74
+ />
75
+ </div>
76
+ )
77
+ }
78
+ ```
79
+
80
+ ```less
81
+ .container {
82
+ width: 100%;
83
+ height: 100%
84
+ }
85
+
86
+ .live {
87
+ padding: 0 !important;
88
+ margin: 0;
89
+ }
90
+
91
+ .info {
92
+ display: none;
93
+ }
94
+
95
+ .desc {
96
+ display: none;
97
+ }
98
+ ```
99
+
100
+ ### 直播列表页
101
+ ```jsx
102
+ import { PublicLiveList } from '@x-edu/live-player'
103
+ import React, { useContext } from 'react'
104
+ import style from './style.module.less'
105
+ import { getLoginUrl, uc } from '@/util/auth/func'
106
+ import UserContext from '@/component/Login/UserContext'
107
+
108
+ export default function LiveTest() {
109
+ const loginInfo = useContext(UserContext)
110
+
111
+ // 部分直播需要登录后才可以播放,这是要求登录的回调
112
+ const handleLogin = (item) => {
113
+ // 处理必须登陆的情况
114
+ window.location.href = getLoginUrl()
115
+ }
116
+
117
+ const handleDetailClick = (item) => {
118
+ // 根据 item 决定怎么跳转详情页
119
+ // 默认跳转中小学直播详情 window.open(`https://basic.smartedu.cn/publicLive/${liveId}}`)
120
+ }
121
+
122
+ return (
123
+ <div>
124
+ <PublicLiveList
125
+ scopeType='e_teacher_studio' // 适用范围,如名师工作室:e_teacher_studio 机构工作室:e_inst_studio 专家工作室:e_expert_studio 精准匹配
126
+ scopeId='xxx' // 适用id,如专家工作室id 精准匹配,必须有scope_type才生效
127
+ containerClassName={style.container} // 容器样式
128
+ uc={uc} // 登陆状态下必填
129
+ loginInfo={loginInfo} // 登陆状态下必填,特别的里面的 userInfo
130
+ handleLogin={handleLogin} // 用于需要强制登陆的回调,会传传入当前直播作为参数
131
+ onDetailClick={handleDetailClick}
132
+ />
133
+ </div>
134
+ )
135
+ }
136
+ ```
137
+
138
+ ## 预生产
139
+
140
+ ```js
141
+ import {
142
+ PublicLiveDetail,
143
+ getLiveOnlineCount,
144
+ PublicLiveList
145
+ } from '@x-edu/live-player/dist/XEduLivePlayerPre.common'
146
146
  ```
package/babel.config.js CHANGED
@@ -1,33 +1,33 @@
1
- const config = {
2
- presets: [
3
- '@gem-mine/app'
4
- ],
5
- plugins: [
6
- '@babel/plugin-proposal-private-methods'
7
- ],
8
- ignore: [
9
- './src/page/teacherStudioAdmin/subPage/resource/subPage/edit/lib/aws-sdk-2.832.0.js',
10
- './src/vendor/fp.esm.js'
11
- ]
12
- }
13
-
14
- if (!process.env.USE_JEST) {
15
- config.plugins.push(['import', {
16
- libraryName: 'fish',
17
- libraryDirectory: 'es',
18
- style: true
19
- }, 'fish'])
20
- config.plugins.push(['import', {
21
- libraryName: '@sdp.nd/elearning-general-module',
22
- libraryDirectory: 'lib',
23
- style: true
24
- }, 'elearning-general-module'])
25
- config.plugins.push(['import', {
26
- libraryName: 'ahooks',
27
- libraryDirectory: 'es',
28
- camel2DashComponentName: false,
29
- style: false
30
- }, 'ahook'])
31
- }
32
-
33
- module.exports = config
1
+ const config = {
2
+ presets: [
3
+ '@gem-mine/app'
4
+ ],
5
+ plugins: [
6
+ '@babel/plugin-proposal-private-methods'
7
+ ],
8
+ ignore: [
9
+ './src/page/teacherStudioAdmin/subPage/resource/subPage/edit/lib/aws-sdk-2.832.0.js',
10
+ './src/vendor/fp.esm.js'
11
+ ]
12
+ }
13
+
14
+ if (!process.env.USE_JEST) {
15
+ config.plugins.push(['import', {
16
+ libraryName: 'fish',
17
+ libraryDirectory: 'es',
18
+ style: true
19
+ }, 'fish'])
20
+ config.plugins.push(['import', {
21
+ libraryName: '@sdp.nd/elearning-general-module',
22
+ libraryDirectory: 'lib',
23
+ style: true
24
+ }, 'elearning-general-module'])
25
+ config.plugins.push(['import', {
26
+ libraryName: 'ahooks',
27
+ libraryDirectory: 'es',
28
+ camel2DashComponentName: false,
29
+ style: false
30
+ }, 'ahook'])
31
+ }
32
+
33
+ module.exports = config