@x-edu/live-player 0.0.32 → 0.0.34

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 (307) 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 +11436 -973
  8. package/dist/XEduLivePlayerPre.common.js +11281 -818
  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 +99 -99
  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 +22 -15
  108. package/src/component/IMChatroom/sdk/imcore/constants.js +130 -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/ncet-xedu-beta/api.js +175 -0
  182. package/src/config/env/ncet-xedu-beta/app.js +12 -0
  183. package/src/config/env/ncet-xedu-beta/cs.js +8 -0
  184. package/src/config/env/ncet-xedu-beta/index.js +14 -0
  185. package/src/config/env/ncet-xedu-beta/push.js +5 -0
  186. package/src/config/env/preproduction/api.js +144 -144
  187. package/src/config/env/preproduction/app.js +12 -12
  188. package/src/config/env/preproduction/cs.js +8 -8
  189. package/src/config/env/preproduction/index.js +14 -14
  190. package/src/config/env/preproduction/push.js +5 -5
  191. package/src/config/env/product/api.js +113 -113
  192. package/src/config/env/product/app.js +12 -12
  193. package/src/config/env/product/cs.js +5 -5
  194. package/src/config/env/product/index.js +14 -14
  195. package/src/config/env/product/push.js +5 -5
  196. package/src/config/live.js +80 -80
  197. package/src/config/publicLive.js +53 -53
  198. package/src/config/request/assessments.js +24 -24
  199. package/src/config/request/config-center.js +8 -8
  200. package/src/config/request/helper.js +190 -166
  201. package/src/config/request/im-broadcasts.js +12 -12
  202. package/src/config/request/live-activity-gateway.js +8 -8
  203. package/src/config/request/live-activity.js +13 -13
  204. package/src/config/request/raw.js +6 -6
  205. package/src/config/request/x-cloud-web.js +13 -13
  206. package/src/config/request/x-proxy.js +34 -34
  207. package/src/demo/Detail.jsx +11 -11
  208. package/src/demo/List.jsx +68 -68
  209. package/src/demo/index.jsx +17 -17
  210. package/src/detail/LineSwitch/index.jsx +71 -71
  211. package/src/detail/LiveCountDown/index.jsx +44 -44
  212. package/src/detail/LiveCountDown/index.module.less +31 -31
  213. package/src/detail/LiveOnlineCount/img/icon.svg +15 -15
  214. package/src/detail/LiveOnlineCount/index.jsx +68 -68
  215. package/src/detail/LiveOnlineCount/index.module.less +34 -34
  216. package/src/detail/LiveOnlineCount/util.js +74 -74
  217. package/src/detail/LiveStatus/AnchorOnTheWay.jsx +88 -88
  218. package/src/detail/LiveStatus/index.jsx +202 -202
  219. package/src/detail/LiveStatus/index.module.less +192 -192
  220. package/src/detail/LiveVideo/config.js +37 -37
  221. package/src/detail/LiveVideo/index.jsx +188 -188
  222. package/src/detail/LiveVideo/index.module.less +41 -41
  223. package/src/detail/NotLoginChatroom/index.jsx +37 -37
  224. package/src/detail/NotLoginChatroom/index.module.less +46 -46
  225. package/src/detail/RecordVideo/index.jsx +150 -150
  226. package/src/detail/RecordVideo/index.module.less +31 -31
  227. package/src/detail/ReplayVideo/index.jsx +93 -93
  228. package/src/detail/ReplayVideo/index.module.less +65 -65
  229. package/src/detail/const.js +20 -20
  230. package/src/detail/hook/usePullSource.js +82 -82
  231. package/src/detail/hook/usePullState.js +51 -51
  232. package/src/detail/index.jsx +483 -482
  233. package/src/detail/index.module.less +188 -188
  234. package/src/hook/useAsync.js +84 -84
  235. package/src/hook/useGoToPage.js +83 -83
  236. package/src/hook/useInterval.js +28 -28
  237. package/src/hook/useIsMounted.js +17 -17
  238. package/src/hook/useModuleByRole.js +53 -53
  239. package/src/hook/usePageScrollable.js +52 -52
  240. package/src/hook/usePortal.js +83 -83
  241. package/src/hook/useScrollRestore/index.js +32 -32
  242. package/src/hook/useScrollRestore/scrollContext.js +20 -20
  243. package/src/hook/useTrackRef.js +11 -11
  244. package/src/hook/useWindowSize.js +28 -28
  245. package/src/hook/useZoom.js +47 -47
  246. package/src/index.js +10 -10
  247. package/src/lib/getLiveOnlineCount.js +10 -10
  248. package/src/lib/getServiceConfig.js +102 -102
  249. package/src/list/Empty/index.jsx +20 -20
  250. package/src/list/Empty/index.module.less +23 -23
  251. package/src/list/ListItem/Action/index.jsx +109 -109
  252. package/src/list/ListItem/Action/index.module.less +25 -25
  253. package/src/list/ListItem/img/dianzan.svg +4 -4
  254. package/src/list/ListItem/img/like-fill.svg +8 -8
  255. package/src/list/ListItem/img/play.svg +15 -15
  256. package/src/list/ListItem/img/view-fill.svg +8 -8
  257. package/src/list/ListItem/img/yiguankan.svg +3 -3
  258. package/src/list/ListItem/index.module.less +158 -158
  259. package/src/list/index.jsx +241 -240
  260. package/src/list/index.module.less +38 -38
  261. package/src/service/common.js +73 -73
  262. package/src/service/content-mgr.js +73 -73
  263. package/src/service/im-group.js +12 -12
  264. package/src/service/im.js +7 -7
  265. package/src/service/imBroadcasts.js +33 -33
  266. package/src/service/like.js +134 -134
  267. package/src/service/live.js +293 -293
  268. package/src/service/manageApi.js +7 -7
  269. package/src/service/managePortal.js +6 -6
  270. package/src/service/myStudyRecord.js +93 -93
  271. package/src/service/navigation.js +47 -47
  272. package/src/service/ndMeeting.js +10 -10
  273. package/src/service/ndr.js +122 -122
  274. package/src/service/news.js +93 -93
  275. package/src/service/personalCenter.js +270 -270
  276. package/src/service/qualityCourse.js +31 -31
  277. package/src/service/recommend.js +81 -81
  278. package/src/service/school.js +323 -323
  279. package/src/service/search.js +170 -170
  280. package/src/service/site-config.js +7 -7
  281. package/src/service/socialCensor.js +45 -45
  282. package/src/service/specialEdu.js +31 -31
  283. package/src/service/suggestion.js +85 -85
  284. package/src/service/syncClassroom.js +321 -321
  285. package/src/service/tCourse.js +204 -204
  286. package/src/service/tchTraining.js +37 -37
  287. package/src/service/uc.js +45 -45
  288. package/src/util/app.js +1 -1
  289. package/src/util/array.js +3 -3
  290. package/src/util/auth/func.js +57 -57
  291. package/src/util/date.js +53 -53
  292. package/src/util/env.js +9 -9
  293. package/src/util/getTimestamp.js +10 -10
  294. package/src/util/hof.js +105 -105
  295. package/src/util/live/index.js +42 -42
  296. package/src/util/liveCountUtil.js +52 -52
  297. package/src/util/netUrl.js +35 -35
  298. package/src/util/object.js +13 -13
  299. package/src/util/push/index.js +58 -58
  300. package/src/util/request.js +227 -227
  301. package/src/util/type.js +17 -17
  302. package/src/util/url.js +203 -203
  303. package/src/util/video.js +26 -26
  304. package/test/setup.js +21 -21
  305. package/test/unit/component/header/logo.spec.jsx +8 -8
  306. package/test/unit/helper.jsx +25 -25
  307. 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