发言人5分钟未推音视频流自动下麦
This commit is contained in:
parent
739b6161ec
commit
b42a5ae6ab
|
|
@ -10,6 +10,7 @@ const computedBehavior = require('miniprogram-computed').behavior;
|
||||||
let reconnectTime = "" as any;
|
let reconnectTime = "" as any;
|
||||||
let refreshTime = "" as any;
|
let refreshTime = "" as any;
|
||||||
let isReconnecTimeSetTimeout = "" as any;
|
let isReconnecTimeSetTimeout = "" as any;
|
||||||
|
let isAutoApplySpeakTime = "" as any;
|
||||||
Page({
|
Page({
|
||||||
behaviors: [computedBehavior],
|
behaviors: [computedBehavior],
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -102,6 +103,7 @@ Page({
|
||||||
isCurrePage: true,
|
isCurrePage: true,
|
||||||
isReconnec: false,
|
isReconnec: false,
|
||||||
isReconnecTime: false,
|
isReconnecTime: false,
|
||||||
|
isAutoApplySpeakDialog: false,
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'roomUserList.**': function (roomUserList) {
|
'roomUserList.**': function (roomUserList) {
|
||||||
|
|
@ -128,6 +130,32 @@ Page({
|
||||||
'footerList.**': function (footerList) {
|
'footerList.**': function (footerList) {
|
||||||
const footerListTemplate = [...footerList];
|
const footerListTemplate = [...footerList];
|
||||||
footerListTemplate[3].show = footerListTemplate[2].active
|
footerListTemplate[3].show = footerListTemplate[2].active
|
||||||
|
if (!footerListTemplate[1].active && !footerListTemplate[2].active) {
|
||||||
|
if (isAutoApplySpeakTime) {
|
||||||
|
clearTimeout(isAutoApplySpeakTime)
|
||||||
|
isAutoApplySpeakTime = ''
|
||||||
|
}
|
||||||
|
isAutoApplySpeakTime = setTimeout(() => {
|
||||||
|
let userItem = this.data.roomUserList.find((item: any) => item.uid === this.data.user.uid)
|
||||||
|
if (!role.ID.includes(this.data.user.roleId) && userItem && userItem.isRoomManager) {
|
||||||
|
DeleteRoomManager({
|
||||||
|
roomId: this.data.roomInfo.id,
|
||||||
|
roomNum: this.data.channelId,
|
||||||
|
userId: userItem.uid
|
||||||
|
})
|
||||||
|
this.setData({
|
||||||
|
isAutoApplySpeakDialog: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
clearTimeout(isAutoApplySpeakTime)
|
||||||
|
isAutoApplySpeakTime = ''
|
||||||
|
}, 1000 * 60 * 5);
|
||||||
|
} else {
|
||||||
|
if (isAutoApplySpeakTime) {
|
||||||
|
clearTimeout(isAutoApplySpeakTime)
|
||||||
|
isAutoApplySpeakTime = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
this.setData({
|
this.setData({
|
||||||
footerList: footerListTemplate
|
footerList: footerListTemplate
|
||||||
})
|
})
|
||||||
|
|
@ -316,6 +344,36 @@ Page({
|
||||||
clearInterval(refreshTime)
|
clearInterval(refreshTime)
|
||||||
refreshTime = ''
|
refreshTime = ''
|
||||||
}
|
}
|
||||||
|
if (isAutoApplySpeakTime) {
|
||||||
|
clearTimeout(isAutoApplySpeakTime)
|
||||||
|
isAutoApplySpeakTime = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
confirmIsAutoApplySpeakDialog() {
|
||||||
|
if (!this.data.isClicked) {
|
||||||
|
GetApplySpeak(this.data.channelId).then(res => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.setData({
|
||||||
|
isClicked: true,
|
||||||
|
})
|
||||||
|
this.message('申请发言成功').success()
|
||||||
|
}
|
||||||
|
this.setData({
|
||||||
|
isAutoApplySpeakDialog: false
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.setData({
|
||||||
|
isAutoApplySpeakDialog: false
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.message('申请太频繁了,请稍后重试!').error();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cancelIsAutoApplySpeakDialog() {
|
||||||
|
this.setData({
|
||||||
|
isAutoApplySpeakDialog: false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
async reconnecFun() {
|
async reconnecFun() {
|
||||||
offSignalr()
|
offSignalr()
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
<t-icon name="fullscreen-2" size="24rpx" data-name="fullscreen-2" wx:else />
|
<t-icon name="fullscreen-2" size="24rpx" data-name="fullscreen-2" wx:else />
|
||||||
</view>
|
</view>
|
||||||
<view class="meeting-content-video-canvas" wx:if="{{currentUser.shareSrc}}">
|
<view class="meeting-content-video-canvas" wx:if="{{currentUser.shareSrc}}">
|
||||||
<live-player id="player" src="{{currentUser.shareSrc}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain"/>
|
<live-player id="player" src="{{currentUser.shareSrc}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain" />
|
||||||
</view>
|
</view>
|
||||||
<view class="meeting-content-video-canvas" wx:elif="{{currentUser.src && currentUser.enableCamera}}">
|
<view class="meeting-content-video-canvas" wx:elif="{{currentUser.src && currentUser.enableCamera}}">
|
||||||
<live-player id="player" src="{{currentUser.src}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain" muted="{{currentUser.uid === user.uid}}" />
|
<live-player id="player" src="{{currentUser.src}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain" muted="{{currentUser.uid === user.uid}}" />
|
||||||
|
|
@ -136,3 +136,4 @@
|
||||||
</view>
|
</view>
|
||||||
</t-popup>
|
</t-popup>
|
||||||
<t-dialog visible="{{isReconnec}}" content="重连失败,请退出重试!" confirm-btn="{{ { content: '确定', variant: 'base', theme: 'primary' } }}" data-type="isReconnec" cancel-btn="{{null}}" bind:confirm="closeRoom" style="transform: scale(0.5) translate3d(-50%, -50%, 0);" close-btn="{{false}}" />
|
<t-dialog visible="{{isReconnec}}" content="重连失败,请退出重试!" confirm-btn="{{ { content: '确定', variant: 'base', theme: 'primary' } }}" data-type="isReconnec" cancel-btn="{{null}}" bind:confirm="closeRoom" style="transform: scale(0.5) translate3d(-50%, -50%, 0);" close-btn="{{false}}" />
|
||||||
|
<t-dialog visible="{{isAutoApplySpeakDialog}}" content="由于您长时间未发言,已自动取消发言权限,是否重新申请发言?" cancel-btn="取消" confirm-btn="{{ { content: '确定', variant: 'base', theme: 'primary' } }}" data-type="isAutoApplySpeakDialog" bind:cancel="cancelIsAutoApplySpeakDialog" bind:confirm="confirmIsAutoApplySpeakDialog" style="transform: scale(0.5) translate3d(-50%, -50%, 0);" close-btn="{{false}}" />
|
||||||
Loading…
Reference in New Issue