Browse Source

增加直播+分包

chenxiong 3 years ago
parent
commit
adba505b70
100 changed files with 258 additions and 248 deletions
  1. 6 0
      App.vue
  2. 22 14
      pages.json
  3. 58 234
      pages2/polyv/polyv.vue
  4. 80 0
      pages3/polyv/polyv.vue
  5. BIN
      wxcomponents/polyv-sdk/assets/images/audio.png
  6. BIN
      wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-emoji.png
  7. BIN
      wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-flower.png
  8. BIN
      wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-keyboard.png
  9. BIN
      wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-more.png
  10. BIN
      wxcomponents/polyv-sdk/assets/images/black/desc-icon-likes.png
  11. BIN
      wxcomponents/polyv-sdk/assets/images/black/desc-icon-viewers.png
  12. BIN
      wxcomponents/polyv-sdk/assets/images/black/icon-chapter-normal.png
  13. BIN
      wxcomponents/polyv-sdk/assets/images/black/icon-duration.png
  14. BIN
      wxcomponents/polyv-sdk/assets/images/bulletin-close-btn.png
  15. BIN
      wxcomponents/polyv-sdk/assets/images/change-position.png
  16. BIN
      wxcomponents/polyv-sdk/assets/images/chat-icon-flower.png
  17. BIN
      wxcomponents/polyv-sdk/assets/images/chat-icon-thumb.png
  18. BIN
      wxcomponents/polyv-sdk/assets/images/default-auth-bg.png
  19. BIN
      wxcomponents/polyv-sdk/assets/images/draw-laser.png
  20. BIN
      wxcomponents/polyv-sdk/assets/images/edit.png
  21. BIN
      wxcomponents/polyv-sdk/assets/images/full.png
  22. BIN
      wxcomponents/polyv-sdk/assets/images/half.png
  23. BIN
      wxcomponents/polyv-sdk/assets/images/icon-answer-right.png
  24. BIN
      wxcomponents/polyv-sdk/assets/images/icon-answer-wrong.png
  25. BIN
      wxcomponents/polyv-sdk/assets/images/icon-back.png
  26. BIN
      wxcomponents/polyv-sdk/assets/images/icon-cam-off.png
  27. BIN
      wxcomponents/polyv-sdk/assets/images/icon-cam-on.png
  28. BIN
      wxcomponents/polyv-sdk/assets/images/icon-chapter-onfocus.png
  29. BIN
      wxcomponents/polyv-sdk/assets/images/icon-duration.png
  30. BIN
      wxcomponents/polyv-sdk/assets/images/icon-ing.png
  31. BIN
      wxcomponents/polyv-sdk/assets/images/icon-like.png
  32. BIN
      wxcomponents/polyv-sdk/assets/images/icon-mic-off.png
  33. BIN
      wxcomponents/polyv-sdk/assets/images/icon-mic-on.png
  34. BIN
      wxcomponents/polyv-sdk/assets/images/icon-play-back.png
  35. BIN
      wxcomponents/polyv-sdk/assets/images/icon-playing.png
  36. BIN
      wxcomponents/polyv-sdk/assets/images/icon-right.png
  37. BIN
      wxcomponents/polyv-sdk/assets/images/icon-teacher.png
  38. BIN
      wxcomponents/polyv-sdk/assets/images/icon-tip.png
  39. BIN
      wxcomponents/polyv-sdk/assets/images/icon-view.png
  40. BIN
      wxcomponents/polyv-sdk/assets/images/icon-wrong.png
  41. BIN
      wxcomponents/polyv-sdk/assets/images/interact-btn-close.png
  42. BIN
      wxcomponents/polyv-sdk/assets/images/interact-cut-off.png
  43. BIN
      wxcomponents/polyv-sdk/assets/images/interact-submit-success.png
  44. BIN
      wxcomponents/polyv-sdk/assets/images/logo.png
  45. BIN
      wxcomponents/polyv-sdk/assets/images/m-btn-dpage-un.png
  46. BIN
      wxcomponents/polyv-sdk/assets/images/m-btn-dpage.png
  47. BIN
      wxcomponents/polyv-sdk/assets/images/m-btn-fscreen-un.png
  48. BIN
      wxcomponents/polyv-sdk/assets/images/m-btn-fscreen.png
  49. BIN
      wxcomponents/polyv-sdk/assets/images/m-btn-upage-un.png
  50. BIN
      wxcomponents/polyv-sdk/assets/images/m-btn-upage.png
  51. BIN
      wxcomponents/polyv-sdk/assets/images/more-bulletin-icon.png
  52. BIN
      wxcomponents/polyv-sdk/assets/images/more-icon-audio.png
  53. BIN
      wxcomponents/polyv-sdk/assets/images/more-icon-barrage-off.png
  54. BIN
      wxcomponents/polyv-sdk/assets/images/more-icon-barrage.png
  55. BIN
      wxcomponents/polyv-sdk/assets/images/more-icon-host-off.png
  56. BIN
      wxcomponents/polyv-sdk/assets/images/more-icon-host.png
  57. BIN
      wxcomponents/polyv-sdk/assets/images/more-icon-nick.png
  58. BIN
      wxcomponents/polyv-sdk/assets/images/more-icon-video.png
  59. BIN
      wxcomponents/polyv-sdk/assets/images/pause.png
  60. BIN
      wxcomponents/polyv-sdk/assets/images/play.png
  61. BIN
      wxcomponents/polyv-sdk/assets/images/ppt_empty.png
  62. BIN
      wxcomponents/polyv-sdk/assets/images/refresh.png
  63. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/Mask@2x.png
  64. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/banmic@2x.png
  65. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/init.png
  66. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/init@2x.png
  67. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/mask.png
  68. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/mic.png
  69. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/mic@2x.png
  70. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/success.png
  71. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/success@2x.png
  72. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/waiting.png
  73. BIN
      wxcomponents/polyv-sdk/assets/images/rtc/waiting@2x.png
  74. BIN
      wxcomponents/polyv-sdk/assets/images/selected.png
  75. BIN
      wxcomponents/polyv-sdk/assets/images/setting.png
  76. BIN
      wxcomponents/polyv-sdk/assets/images/unselect.png
  77. BIN
      wxcomponents/polyv-sdk/assets/images/video.png
  78. BIN
      wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-emoji.png
  79. BIN
      wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-flower.png
  80. BIN
      wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-keyboard.png
  81. BIN
      wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-more.png
  82. BIN
      wxcomponents/polyv-sdk/assets/images/white/desc-icon-likes.png
  83. BIN
      wxcomponents/polyv-sdk/assets/images/white/desc-icon-viewers.png
  84. BIN
      wxcomponents/polyv-sdk/assets/images/white/icon-chapter-normal.png
  85. BIN
      wxcomponents/polyv-sdk/assets/images/white/icon-duration.png
  86. 1 0
      wxcomponents/polyv-sdk/common/answerCard/Language.js
  87. 0 0
      wxcomponents/polyv-sdk/common/answerCard/index.js
  88. 1 0
      wxcomponents/polyv-sdk/common/api/index.js
  89. 1 0
      wxcomponents/polyv-sdk/common/api/plv-request.js
  90. 0 0
      wxcomponents/polyv-sdk/common/authInfo/authInfo.js
  91. 39 0
      wxcomponents/polyv-sdk/common/authInfo/authInfo.wxml
  92. 48 0
      wxcomponents/polyv-sdk/common/authInfo/authInfo.wxss
  93. 1 0
      wxcomponents/polyv-sdk/common/chat/api.js
  94. 0 0
      wxcomponents/polyv-sdk/common/chat/chat.js
  95. 0 0
      wxcomponents/polyv-sdk/common/chat/emotionList.js
  96. 0 0
      wxcomponents/polyv-sdk/common/chat/emotions.js
  97. 0 0
      wxcomponents/polyv-sdk/common/chat/eventTypes.js
  98. 0 0
      wxcomponents/polyv-sdk/common/chat/events.js
  99. 0 0
      wxcomponents/polyv-sdk/common/chat/transToEmoji.js
  100. 1 0
      wxcomponents/polyv-sdk/common/computed/index.js

+ 6 - 0
App.vue

@@ -1,4 +1,5 @@
 <script>
+	import plv from './wxcomponents/polyv-sdk/index';
 	export default {
 		onLaunch: function(option) {
 			let inviteCode = option.inviteCode
@@ -6,6 +7,11 @@
 				console.log(inviteCode)
 				uni.setStorageSync("inviteCode",inviteCode)
 			}
+			console.log(plv)
+			 plv.setApp({
+				apiId: 'ezl5uy4zei',
+				apiSecret: '2bf5bb3c31d34531943df10284edd50b'
+			});
 
 		},
 		methods: {

+ 22 - 14
pages.json

@@ -178,20 +178,6 @@
 					}
 				}
 			},
-			{
-				"path": "polyv/polyv",
-				"style": {
-					"navigationBarTitleText": "保利威直播",
-					"app-plus": {
-						"bounce": "none"
-					},
-					"mp-weixin": {
-						"usingComponents": {
-							"polyv-player": "plugin://polyv-player/player"
-						}
-					}
-				}
-			},
 			{
 				"path": "order/confirm_list",
 				"style": {
@@ -667,6 +653,28 @@
 				"provider": "wx4a350a258a6f7876"
 			}
 		}
+	},{
+		"root": "pages3",
+		"pages": [{
+				"path": "polyv/polyv",
+				"style": {
+					"navigationBarTitleText": "保利威直播",
+					"app-plus": {
+						"bounce": "none"
+					},
+					"mp-weixin": {
+						"usingComponents": {
+						    "player": "../../wxcomponents/polyv-sdk/components/player/player",
+						    "chatroom": "../../wxcomponents/polyv-sdk/components/chatroom/chatroom",
+						    "sign-in": "../../wxcomponents/polyv-sdk/components/sign-in/sign",
+						    "question": "../../wxcomponents/polyv-sdk/components/question/question",
+						    "answer-card": "../../wxcomponents/polyv-sdk/components/answer-card/answer-card",
+						    "bulletin": "../../wxcomponents/polyv-sdk/components/bulletin/bulletin"
+						  }
+					}
+				}
+		}]
+			
 	}],
 	"preloadRule": {
 		"pages/index/index": {

+ 58 - 234
pages2/polyv/polyv.vue

@@ -1,256 +1,80 @@
 <template>
-	<view>
-	 <polyv-player
-		  :vid="保利威的vid 保利威后台里有"
-		  :autoplay="true"
-		>
-		</polyv-player>
+	<view class="plv-mp-demo-page">
+	  <player
+	    class="plv-mp-demo-player"
+	    :videoOption="videoOption"
+	  />
 	</view>
 </template>
 
 <script>
+import plv from '../../wxcomponents/polyv-sdk/index';
 export default {
 	data() {
 		return {
-			code: '',
-			form:{
-				realname:'',
-				idCard:''
+			videoOption:{
+				mode: 'live',
+				uid: 'egsxlptzdq',
+				cid: '2553128',
+				openId: 'oQ5eX5BCtSjkE1ct8CzvxGWgh0hQ',
+				isAutoChange: false,
+				forceVideo: false,
 			},
-			codeTips: '',
-			read:''
+			detail: {},
 		};
 	},
 	mounted() {},
 	methods: {
-		jumpBind(){
-			let that = this
-			
-			if(!this.form.realname.trim()){
-				this.$u.toast('请输入学员姓名');
-				return 
-			}
-			if(!this.form.idCard.trim()){
-				this.$u.toast('请输入身份证卡号');
-				return 
-			}
-			
-			let IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
-			let IDre15 =  /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
-			
-			if( !IDRe18.test( this.form.idCard ) && !IDre15.test( this.form.idCard )  ) {
-				this.$u.toast('请输入格式正确的身份证卡号');
-				console.log(' 验证未通过 ')
-				return 
-			}
-			
-			
-			this.$set(this.form,'realname',this.form.realname.trim()) //去除姓名两头空格
-			
-			that.isUse = true
-			that.$api.bindId(this.form).then(
-				res => {
-					that.isUse = false
-					if (res.data.code == 200) {
-						uni.setStorageSync('user_account',uni.getStorageSync('user_account_temp'));
-						uni.setStorageSync('token',uni.getStorageSync('token_temp'));
-						uni.removeStorageSync('user_account_temp') //移除临时账号
-						uni.removeStorageSync('token_temp') //移除临时token
-						uni.reLaunch({
-							url:'/pages/index/index'
-						})
-						that.$api.getInfo().then(resdata => {
-							if(resdata.data.code == 200){
-								that.$store.state.userInfo = resdata.data.data;
-							}
-							
-						});
-					} else {
-						that.$u.toast(res.data.msg);
-					}
-				},
-				err => {
-					that.isUse = false
-				}
-			);
-			
-		},
-		radioGroupChange(e) {
-			 console.log(e);
-		},
-		codeChange(text) {
-			this.codeTips = text;
-			
-		},
-		// 获取验证码
-		getCode() {
-			if(this.$refs.uCode.canGetCode) {
-				// 模拟向后端请求验证码
-				uni.showLoading({
-					title: '正在获取验证码',
-					mask: true
-				})
-				setTimeout(() => {
-					uni.hideLoading();
-					// 这里此提示会被this.start()方法中的提示覆盖
-					this.$u.toast('验证码已发送');
-					// 通知验证码组件内部开始倒计时
-					this.$refs.uCode.start();
-				}, 2000);
-			} else {
-				this.$u.toast('倒计时结束后再发送');
-			}
-		},
-		sectionChange(index) {
-			this.current = index;
-		},
-		getPhoneNumber(e) {
-			let that = this;
-			uni.checkSession({
-			  success () {
-			    //session_key 未过期,并且在本生命周期一直有效
-				that.putInfo(e)
-			  },
-			  fail () {
-			    // session_key 已经失效,需要重新执行登录流程
-			    uni.login({
-			    	provider: 'weixin',
-			    	success: function(loginRes) {
-			    		that.code = loginRes.code;
-						that.putInfo(e)
-			    	}
-			    });
+		setLiveOption(status) {
+		    const { userId, channelId, recordFileSimpleModel, playbackEnabled } = this.detail;
+		    const playRecordFile = playbackEnabled && recordFileSimpleModel && status === 'end';
+		
+		    this.videoOption = { 
+				mode: 'live',
+				uid: userId,
+				cid: channelId,
+				isAutoChange: false,
+				forceVideo: false,
+				vodsrc: playRecordFile ? recordFileSimpleModel.mp4 || recordFileSimpleModel.m3u8 : '',
+				liveMode: playRecordFile ? 2 : 1,
 			  }
-			})
-		},
-		putInfo(e){
-			let that = this;
-			if (e.detail.encryptedData) {
-				let inviteCode =  uni.getStorageSync("inviteCode") 
-				//用户同意授权
-				var  datas = {
-					iv: e.detail.iv,
-					encryptedData: e.detail.encryptedData,
-					code: that.code
-				};
-				if(inviteCode){
-					datas.inviteCode = inviteCode
-				}
-				that.$api.login(datas).then(
-					res => {
-						if (res.data.code == 200) {
-							uni.setStorageSync('union_id', res.data.data.union_id);
-							uni.setStorageSync('token', res.data.data.token);
-							that.$api.getInfo().then(resdata => {
-								if(resdata.data.code == 200){
-									uni.navigateBack();
-									that.$store.state.userInfo = resdata.data.data;
-								}
-								
-							});
-						} else {
-							uni.showModal({
-								title: '提示',
-								content: res.data.msg,
-								showCancel: false
-							});
-						}
-					},
-					err => {
-						console.log(err);
-					}
-				);
-			}
 		}
 	},
-	onLoad(option) {
-		let that = this;
-		this.from = option.from;
-		uni.removeStorageSync('user_account') //移除临时账号
-		uni.removeStorageSync('token')
-		uni.login({
-			provider: 'weixin',
-			success: function(loginRes) {
-				that.code = loginRes.code;
-			}
-		});
+	onLoad(options) {
+			options.mode = 'live';
+			options.forceVideo = false;
+		    options.channelId = '2553128'; // 频道ID
+		    options.openId = 'oQ5eX5BCtSjkE1ct8CzvxGWgh0hQ'; // 用户openId
+		    // userName: ''; // 用户名
+		    // avatarUrl: ''; // 用户头像
+	        options.userId = 'egsxlptzdq' // 2.0.0及以上版本的demo需要使用 userId 设置学员唯一id
+		    plv.init(options)
+		      .then(({ detail, chat }) => {
+				  
+				  console.log(9999)
+		        this.detail = detail
+		        // 设置mode为live的videoOption
+		        // this.setLiveOption();
+		
+		        if (detail.isPPT) {
+		          chat.on(chat.events.SLICESTART, () => {
+		            // 开始直播
+		          });
+		        } else {
+		          plv.api.getOrdinaryLiveStatus(detail.stream);
+		        }
+		      });
+		
+		console.log(this.$refs.plv)
+	},
+	onUnload() {
+		 plv.destroy();
 	}
 };
 </script>
 
-<style scoped>
-	.wxBtn{
-		position: fixed;
-		bottom: 10%;
-		width: 100%;
-		left: 0;
-	}
-	/deep/ .wxBtn button::after{
-	    border: none; 
-	}
-	.loginBtn{
-		width: 526rpx;
-		height: 80rpx;
-		background: linear-gradient(90deg, #015EEA, #00C0FA);
-		box-shadow: 0rpx 10rpx 16rpx 4rpx rgba(1, 99, 235, 0.04);
-		opacity: 0.6;
-		border-radius: 40rpx;
-		color: #FFFFFF;
-		text-align: center;
-		line-height: 80rpx;
-		margin: 40rpx auto;
-	}
-	
-	
-	.wxloginBtn{
-		background: url("/static/loginBtn.png") no-repeat;
-		background-size:100% 100%;
-		border:none;
-		width: 100rpx;
-		height: 100rpx;
-	}
-	
-	/deep/page {
-		background-color: #FFFFFF;
-		height: 100%;
-		width: 100%;
+<style scoped lang="scss">
+	.plv-mp-demo-page {
+		height:500rpx;
 	}
-	.login_box{
-		width: 100%;
-		height: 360rpx;
-		background: #FFFFFF;
-		box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(1, 99, 235, 0.1);
-		border-radius: 24rpx;
-		margin-top: 30rpx;
-		padding:40rpx 35rpx;
-	}
-	/deep/ .u-item-bg{
-		border-radius: 32px !important;
-	}
-	/deep/ .u-subsection{
-		border-radius: 32px !important;
-	}
-.full_img {
-	position: absolute;
-	left: 0;
-	display: block;
-	width: 100%;
-	z-index: -999;
-	top: 0;
-}
-
-.head {
-	height: 96rpx;
-	width: 100%;
-	line-height: 96rpx;
-	margin-top: 40rpx;
-	text-align: center;
-	display: flex;
-	position: relative;
-	justify-content: center;
-}
-.icon {
-	position: absolute;
-	left: 30rpx;
-}
 </style>

+ 80 - 0
pages3/polyv/polyv.vue

@@ -0,0 +1,80 @@
+<template>
+	<view class="plv-mp-demo-page">
+	  <player
+	    class="plv-mp-demo-player"
+	    :videoOption="videoOption"
+	  />
+	</view>
+</template>
+
+<script>
+import plv from '../../wxcomponents/polyv-sdk/index';
+export default {
+	data() {
+		return {
+			videoOption:{
+				mode: 'live',
+				uid: 'egsxlptzdq',
+				cid: '2553128',
+				openId: 'oQ5eX5BCtSjkE1ct8CzvxGWgh0hQ',
+				isAutoChange: false,
+				forceVideo: false,
+			},
+			detail: {},
+		};
+	},
+	mounted() {},
+	methods: {
+		setLiveOption(status) {
+		    const { userId, channelId, recordFileSimpleModel, playbackEnabled } = this.detail;
+		    const playRecordFile = playbackEnabled && recordFileSimpleModel && status === 'end';
+		
+		    this.videoOption = { 
+				mode: 'live',
+				uid: userId,
+				cid: channelId,
+				isAutoChange: false,
+				forceVideo: false,
+				vodsrc: playRecordFile ? recordFileSimpleModel.mp4 || recordFileSimpleModel.m3u8 : '',
+				liveMode: playRecordFile ? 2 : 1,
+			  }
+		}
+	},
+	onLoad(options) {
+			options.mode = 'live';
+			options.forceVideo = false;
+		    options.channelId = '2553128'; // 频道ID
+		    options.openId = 'oQ5eX5BCtSjkE1ct8CzvxGWgh0hQ'; // 用户openId
+		    // userName: ''; // 用户名
+		    // avatarUrl: ''; // 用户头像
+	        options.userId = 'egsxlptzdq' // 2.0.0及以上版本的demo需要使用 userId 设置学员唯一id
+		    plv.init(options)
+		      .then(({ detail, chat }) => {
+				  
+				  console.log(9999)
+		        this.detail = detail
+		        // 设置mode为live的videoOption
+		        // this.setLiveOption();
+		
+		        if (detail.isPPT) {
+		          chat.on(chat.events.SLICESTART, () => {
+		            // 开始直播
+		          });
+		        } else {
+		          plv.api.getOrdinaryLiveStatus(detail.stream);
+		        }
+		      });
+		
+		console.log(this.$refs.plv)
+	},
+	onUnload() {
+		 plv.destroy();
+	}
+};
+</script>
+
+<style scoped lang="scss">
+	.plv-mp-demo-page {
+		height:500rpx;
+	}
+</style>

BIN
wxcomponents/polyv-sdk/assets/images/audio.png


BIN
wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-emoji.png


BIN
wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-flower.png


BIN
wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-keyboard.png


BIN
wxcomponents/polyv-sdk/assets/images/black/chatroom-icon-more.png


BIN
wxcomponents/polyv-sdk/assets/images/black/desc-icon-likes.png


BIN
wxcomponents/polyv-sdk/assets/images/black/desc-icon-viewers.png


BIN
wxcomponents/polyv-sdk/assets/images/black/icon-chapter-normal.png


BIN
wxcomponents/polyv-sdk/assets/images/black/icon-duration.png


BIN
wxcomponents/polyv-sdk/assets/images/bulletin-close-btn.png


BIN
wxcomponents/polyv-sdk/assets/images/change-position.png


BIN
wxcomponents/polyv-sdk/assets/images/chat-icon-flower.png


BIN
wxcomponents/polyv-sdk/assets/images/chat-icon-thumb.png


BIN
wxcomponents/polyv-sdk/assets/images/default-auth-bg.png


BIN
wxcomponents/polyv-sdk/assets/images/draw-laser.png


BIN
wxcomponents/polyv-sdk/assets/images/edit.png


BIN
wxcomponents/polyv-sdk/assets/images/full.png


BIN
wxcomponents/polyv-sdk/assets/images/half.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-answer-right.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-answer-wrong.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-back.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-cam-off.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-cam-on.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-chapter-onfocus.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-duration.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-ing.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-like.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-mic-off.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-mic-on.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-play-back.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-playing.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-right.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-teacher.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-tip.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-view.png


BIN
wxcomponents/polyv-sdk/assets/images/icon-wrong.png


BIN
wxcomponents/polyv-sdk/assets/images/interact-btn-close.png


BIN
wxcomponents/polyv-sdk/assets/images/interact-cut-off.png


BIN
wxcomponents/polyv-sdk/assets/images/interact-submit-success.png


BIN
wxcomponents/polyv-sdk/assets/images/logo.png


BIN
wxcomponents/polyv-sdk/assets/images/m-btn-dpage-un.png


BIN
wxcomponents/polyv-sdk/assets/images/m-btn-dpage.png


BIN
wxcomponents/polyv-sdk/assets/images/m-btn-fscreen-un.png


BIN
wxcomponents/polyv-sdk/assets/images/m-btn-fscreen.png


BIN
wxcomponents/polyv-sdk/assets/images/m-btn-upage-un.png


BIN
wxcomponents/polyv-sdk/assets/images/m-btn-upage.png


BIN
wxcomponents/polyv-sdk/assets/images/more-bulletin-icon.png


BIN
wxcomponents/polyv-sdk/assets/images/more-icon-audio.png


BIN
wxcomponents/polyv-sdk/assets/images/more-icon-barrage-off.png


BIN
wxcomponents/polyv-sdk/assets/images/more-icon-barrage.png


BIN
wxcomponents/polyv-sdk/assets/images/more-icon-host-off.png


BIN
wxcomponents/polyv-sdk/assets/images/more-icon-host.png


BIN
wxcomponents/polyv-sdk/assets/images/more-icon-nick.png


BIN
wxcomponents/polyv-sdk/assets/images/more-icon-video.png


BIN
wxcomponents/polyv-sdk/assets/images/pause.png


BIN
wxcomponents/polyv-sdk/assets/images/play.png


BIN
wxcomponents/polyv-sdk/assets/images/ppt_empty.png


BIN
wxcomponents/polyv-sdk/assets/images/refresh.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/Mask@2x.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/banmic@2x.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/init.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/init@2x.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/mask.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/mic.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/mic@2x.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/success.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/success@2x.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/waiting.png


BIN
wxcomponents/polyv-sdk/assets/images/rtc/waiting@2x.png


BIN
wxcomponents/polyv-sdk/assets/images/selected.png


BIN
wxcomponents/polyv-sdk/assets/images/setting.png


BIN
wxcomponents/polyv-sdk/assets/images/unselect.png


BIN
wxcomponents/polyv-sdk/assets/images/video.png


BIN
wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-emoji.png


BIN
wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-flower.png


BIN
wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-keyboard.png


BIN
wxcomponents/polyv-sdk/assets/images/white/chatroom-icon-more.png


BIN
wxcomponents/polyv-sdk/assets/images/white/desc-icon-likes.png


BIN
wxcomponents/polyv-sdk/assets/images/white/desc-icon-viewers.png


BIN
wxcomponents/polyv-sdk/assets/images/white/icon-chapter-normal.png


BIN
wxcomponents/polyv-sdk/assets/images/white/icon-duration.png


+ 1 - 0
wxcomponents/polyv-sdk/common/answerCard/Language.js

@@ -0,0 +1 @@
+const LANGUAGE={TITLE:"答题卡",SCORE_TITLE:"评分",SUBMIT:"提交",MULTI_CHOICE:"(多选)",SUBMIT_DONE:"提交成功",CUT_OFF:"已截止",CORRECT_ANSWER:"回答正确",WRONG_ANSWER:"回答错误",NO_ANSWER:"未作答",AVERAGE:"平均得分",IKNOW:"我知道了",SUBMIT_FAILED:"提交失败",IGNORE:"忽略",ANSWER_END:"答题已结束",ANSWER_SUBMITED:"已答题"};module.exports=LANGUAGE;

File diff suppressed because it is too large
+ 0 - 0
wxcomponents/polyv-sdk/common/answerCard/index.js


+ 1 - 0
wxcomponents/polyv-sdk/common/api/index.js

@@ -0,0 +1 @@
+import{URL}from"../utils/config";import{request}from"./plv-request";const{mainHost:mainHost,routerHost:routerHost}=URL;export default{getOpenId:e=>request(mainHost+"/live/v3/applet/sdk/onlogin-sdk",{qs:{code:e}}),getUserId:e=>request(mainHost+"/live/v3/applet/sdk/get-chat-userId",{qs:{openId:e}}),getChannelDetail:e=>request(mainHost+"/live/v3/applet/sdk/get-channel-token-detail",{qs:{channelId:e}}),getOrdinaryLiveStatus:e=>request(mainHost+"/live_status/query",{qs:{stream:e}},!0),getPlayBackVideos:(e={})=>(e=Object.assign(e,{pageSize:500,page:1}),request(mainHost+"/live/v3/channel/playback/list-actual-playback",{qs:e})),getChannelKey:e=>request(`${mainHost}/live/v2/channels/${e}/mic-auth`,{qs:{type:"web",timestamp:(new Date).getTime()}},!0),agoraRelation(e){let t={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"};return request(`${mainHost}/live/v3/agora/relation`,{body:e,method:"POST",headers:t})},getTRTCChannelKey:async e=>request(`${mainHost}/live/inner/v3/trtc/auth`,{qs:e},!0),getChapterRecords:e=>request(`${mainHost}/live/v3/channel/chat/get-ppt-records`,{qs:e}),getRestrict:e=>request(`${routerHost}/livejson.polyv.net/service/v3/restrict.json`,{qs:e},!0),getBackRestrict:e=>request(`${routerHost}/live.polyv.net/service/v3/restrict.json`,{qs:e},!0),getLatestSessionId:e=>request(`${mainHost}/live/channel-sessionid/query`,{qs:e})};

+ 1 - 0
wxcomponents/polyv-sdk/common/api/plv-request.js

@@ -0,0 +1 @@
+import md5 from"../utils/md5";import wxRequest from"../utils/request";import store from"../../store/index";function resortParam(t){const e=Object.keys(t).filter((t=>"sign"!==t)).sort();let r="";return e.forEach((e=>{r+=`${e}${t[e]}`})),r}function getSign(t,e){const r={...t},s=resortParam(t);return r.sign=md5(`plyMinApp${s}plyMinApp`).toUpperCase(),wxRequest(e,{qs:r})}function getSecretSign(t,e){const r=resortParam(t);return md5(`${e}${r}${e}`).toUpperCase()}export const request=async(t,e,r)=>{if(!r){const{apiId:t,apiSecret:r,verifyUrl:s}=store.get("app");for(const n in e)if(("qs"===n||"body"===n)&&e[n]){const o={...e[n]};if(o.appId=t,o.timestamp=Date.now(),s){const t=await getSign(o,s);o.sign=t.data.data.sign}else o.sign=getSecretSign(o,r);e[n]=o}}return wxRequest(t,e)};

+ 0 - 0
wxcomponents/polyv-sdk/common/authInfo/authInfo.js


+ 39 - 0
wxcomponents/polyv-sdk/common/authInfo/authInfo.wxml

@@ -0,0 +1,39 @@
+<template name="authInfo">
+  <view class="plv-auth-info" wx:if="{{ type === 'name' }}">
+    {{ name }}
+    <input type="text" data-index="{{ index }}" bindinput="infoInput" placeholder="{{ placeholder }}"/>
+  </view>
+  <view class="plv-auth-info" wx:if="{{ type === 'number' }}">
+    {{ name }}
+    <input type="digit" data-index="{{ index }}" bindinput="infoInput" placeholder="{{ placeholder }}"/>
+  </view>
+  <view class="plv-auth-info" wx:if="{{ type === 'text' }}">
+    {{ name }}
+    <input type="text" data-index="{{ index }}" bindinput="infoInput" placeholder="{{ placeholder }}"/>
+  </view>
+  <view class="plv-auth-info" wx:if="{{ type === 'mobile' }}">
+    {{ name }}
+    <input bindinput="telInput" type="number" placeholder="{{ placeholder }}"/>
+  </view>
+  <view wx:if="{{ type === 'mobile' && sms === 'Y' }}">
+    <view class="plv-auth-info">
+      <input bindinput="kaptchaInput" placeholder="请输入验证码"/>
+      <image bindtap="getInfoImage" src="{{ infoImage }}" />
+    </view>
+    <view class="plv-auth-info">
+      <input bindinput="msgInput" placeholder="短信验证码"/>
+      <button
+        bindtap="getInfoMsg"
+        plain
+        class="plv-info__get__msg {{ disable ? 'btn-disabled' : '' }}">{{ smsBtnText }}</button>
+    </view>
+  </view>
+  <view class="plv-auth-info" wx:if="{{ type === 'option' }}">
+    <text>{{ name }}</text>
+    <picker bindchange="bindPickerChange" data-index="{{ index }}" value="{{ infoParams[index] }}" range="{{ options }}">
+      <view class="picker">
+        {{ options[infoParams[index]] }}
+      </view>
+    </picker>
+  </view>
+</template>

+ 48 - 0
wxcomponents/polyv-sdk/common/authInfo/authInfo.wxss

@@ -0,0 +1,48 @@
+.plv-auth-info {
+  display: flex;
+  color: #333;
+  height: 50px;
+  margin: 0;
+  padding: 0;
+  margin-left: 40rpx;
+  align-items: center;
+  border-bottom: 1px solid #f0f0f0;
+  position: relative;
+}
+
+.plv-auth-info > input {
+  padding: 0 10px;
+  font-size: 15px;
+  border: none;
+  flex: 1;
+}
+
+.plv-auth-info > picker {
+  width: 50%;
+  margin-left: 10px;
+}
+
+.plv-auth-info > image {
+  width: 148px;
+  height: 36px;
+}
+
+.plv-auth-info .plv-info__get__msg {
+  margin-right: 20rpx;
+  font-size: 15px;
+  height: 36px;
+  line-height: 36px;
+  text-align: center;
+  width: 120px;
+  border: none;
+  background: 0 0;
+  outline: 0;
+  border-left: 1px solid #f0f0f0;
+  color: #999;
+}
+
+.plv-auth-info .btn-disabled {
+  border-left: none;
+  background: #bbb;
+  color: #fff;
+}

+ 1 - 0
wxcomponents/polyv-sdk/common/chat/api.js

@@ -0,0 +1 @@
+import{request}from"../api/plv-request";import{URL}from"../utils/config";const{mainHost:mainHost,chatHost:chatHost}=URL,historyUrl=`${mainHost}/live/v3/channel/chat/get-history-contents`,removeHistoryUrl=`${mainHost}/live/v3/channel/chat/remove-content`,questionHistoryUrl=`${mainHost}/live/v3/channel/chat/get-question-contents`,getCurrentSign=`${mainHost}/live/v3/channel/chat/get-checkin`,getCheckinList=`${mainHost}/live/v3/channel/chat/get-checkin-list`,userUrl=`${mainHost}/live/v3/channel/chat/get-user-list`,bannedListUrl=`${mainHost}/live/v3/channel/chat/get-banned-list`,microphoneStatusUrl=`${mainHost}/live/v3/channel/chat/get-microphone-status`,microphoneStatusUrl2=`${chatHost}/front/getMicrophoneStatus`,getIsKicked=`${mainHost}/live/v3/channel/chat/is-kicked`;export default{getIsKicked:(e,t)=>request(getIsKicked,{qs:{roomId:e,userId:t},method:"POST"}),setNickname:(e,t)=>request(`${mainHost}/${e}/set-nickname`,{body:{nickname:t}}),getOnlineUserList:(e,t)=>request(userUrl,{body:{channelId:e,roomId:t,page:1,pageSize:100,hide:0}}),getHistoryMessage:(e,t,n)=>request(historyUrl,{body:{channelId:e.roomName,roomId:e.roomId,start:t,end:t+n,hideIp:0,fullMessage:1,hasCustom:1}}),getQuestionHistoryMessage:(e,t=0,n=20)=>request(questionHistoryUrl,{body:{channelId:e,start:t,end:t+n}}),getCurrentSignRecord:e=>request(getCurrentSign,{body:{channelId:e.channelId,checkinId:e.checkinId}}),getHistorySignRecord:e=>request(getCheckinList,{body:{channelId:e.channelId,startDate:e.startIndate,endDate:e.endIndate}}),getBannedList:e=>request(bannedListUrl,{body:{channelId:e,type:"ip"}}),removeHistoryUrl:(e,t)=>request(removeHistoryUrl,{body:{channelId:t.roomName,id:e}}),checkCurrentStatus:e=>request(microphoneStatusUrl,{body:{channelId:e}}),sendLike(e){const{channelId:t}=e;return request(`${mainHost}/live/v2/channels/${t}/like`,{body:e,method:"POST",contentType:"application/x-www-form-urlencoded"})},checkCurrentStatus2:e=>request(microphoneStatusUrl2,{body:{roomId:e}})};

File diff suppressed because it is too large
+ 0 - 0
wxcomponents/polyv-sdk/common/chat/chat.js


File diff suppressed because it is too large
+ 0 - 0
wxcomponents/polyv-sdk/common/chat/emotionList.js


File diff suppressed because it is too large
+ 0 - 0
wxcomponents/polyv-sdk/common/chat/emotions.js


File diff suppressed because it is too large
+ 0 - 0
wxcomponents/polyv-sdk/common/chat/eventTypes.js


File diff suppressed because it is too large
+ 0 - 0
wxcomponents/polyv-sdk/common/chat/events.js


File diff suppressed because it is too large
+ 0 - 0
wxcomponents/polyv-sdk/common/chat/transToEmoji.js


+ 1 - 0
wxcomponents/polyv-sdk/common/computed/index.js

@@ -0,0 +1 @@
+module.exports=Behavior({lifetimes:{created(){this._computedCache={},this._originalSetData=this.setData,this.setData=this._setData,this._doingSetData=!1,this._doingSetProps=!1}},definitionFilter(t){const e=t.computed||{},o=Object.keys(e),i=t.properties||{},a=Object.keys(i),s=t=>{const i={},a=t._computedCache||t.data;for(let s=0,n=o.length;s<n;s++){const n=o[s],c=e[n];if("function"==typeof c){const e=c.call(t);a[n]!==e&&(i[n]=e,a[n]=e)}}return i};(()=>{t.data=t.data||{};const e=t.data,o=Object.prototype.hasOwnProperty;a.length&&Object.keys(i).forEach((t=>{const a=i[t];let n;null===a||a===Number||a===String||a===Boolean||a===Object||a===Array?i[t]={type:a}:"object"==typeof a&&(o.call(a,"value")&&(e[t]=a.value),o.call(a,"observer")&&"function"==typeof a.observer&&(n=a.observer)),i[t].observer=function(...t){const e=this._originalSetData;if(this._doingSetProps)return void(n&&n.apply(this,t));if(this._doingSetData)return void console.warn("can't call setData in computed getter function!");this._doingSetData=!0;const o=s(this);e.call(this,o),this._doingSetData=!1,n&&n.apply(this,t)}})),s(t)})(),t.methods=t.methods||{},t.methods._setData=function(t,o){const i=this._originalSetData;if(this._doingSetData)return void console.warn("can't call setData in computed getter function!");this._doingSetData=!0;const n=Object.keys(t);for(let o=0,i=n.length;o<i;o++){const i=n[o];e[i]&&delete t[i],!this._doingSetProps&&a.indexOf(i)>=0&&(this._doingSetProps=!0)}i.call(this,t,o);const c=s(this);i.call(this,c),this._doingSetData=!1,this._doingSetProps=!1}}});

Some files were not shown because too many files changed in this diff