This commit is contained in:
parent
067c9a1042
commit
23f6ea5ba8
|
|
@ -8,6 +8,8 @@ import * as signalR from "signalr-for-wx";
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
const computedBehavior = require('miniprogram-computed').behavior;
|
const computedBehavior = require('miniprogram-computed').behavior;
|
||||||
let reconnectTime = "" as any;
|
let reconnectTime = "" as any;
|
||||||
|
let refreshTime = "" as any;
|
||||||
|
let isReconnecTimeSetTimeout = "" as any;
|
||||||
Page({
|
Page({
|
||||||
behaviors: [computedBehavior],
|
behaviors: [computedBehavior],
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -97,7 +99,9 @@ Page({
|
||||||
'我要发言',
|
'我要发言',
|
||||||
],
|
],
|
||||||
isFirstShow: true,
|
isFirstShow: true,
|
||||||
isCurrePage: false,
|
isCurrePage: true,
|
||||||
|
isReconnec: false,
|
||||||
|
isReconnecTime: false,
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'roomUserList.**': function (roomUserList) {
|
'roomUserList.**': function (roomUserList) {
|
||||||
|
|
@ -138,6 +142,50 @@ Page({
|
||||||
}, 10000);
|
}, 10000);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
'isReconnecTime': function (isReconnecTime) {
|
||||||
|
if (isReconnecTime) {
|
||||||
|
isReconnecTimeSetTimeout = setTimeout(() => {
|
||||||
|
clearTimeout(isReconnecTimeSetTimeout)
|
||||||
|
this.setData({
|
||||||
|
isReconnec: true,
|
||||||
|
isReconnecTime: false,
|
||||||
|
})
|
||||||
|
isReconnecTimeSetTimeout = ''
|
||||||
|
wx.hideLoading()
|
||||||
|
}, 8000)
|
||||||
|
} else {
|
||||||
|
if (isReconnecTimeSetTimeout) {
|
||||||
|
clearTimeout(isReconnecTimeSetTimeout)
|
||||||
|
isReconnecTimeSetTimeout = ''
|
||||||
|
wx.hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'isCurrePage': function (isCurrePage) {
|
||||||
|
if (isCurrePage) {
|
||||||
|
if (refreshTime) {
|
||||||
|
clearInterval(refreshTime)
|
||||||
|
refreshTime = ''
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
refreshTime = setInterval(() => {
|
||||||
|
GetRoomUser(this.data.channelId).then(res => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
res.data.forEach((item: any) => {
|
||||||
|
let row = this.data.roomUserList.find((row: any) => row.uid == item.uid);
|
||||||
|
if (row) {
|
||||||
|
row.enableCamera = item.enableCamera;
|
||||||
|
row.enableMicr = item.enableMicr;
|
||||||
|
row.isRoomManager = item.isRoomManager;
|
||||||
|
row.isAdmin = role.ID.includes(item.roleId) || item.isRoomManager;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.changeAgoraDevice()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, 1000 * 30)
|
||||||
|
}
|
||||||
|
},
|
||||||
'currentUid': function (currentUid) {
|
'currentUid': function (currentUid) {
|
||||||
this.data.roomUserList.forEach(item => {
|
this.data.roomUserList.forEach(item => {
|
||||||
if (item.src) {
|
if (item.src) {
|
||||||
|
|
@ -205,7 +253,7 @@ Page({
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.setData({
|
this.setData({
|
||||||
isCurrePage: true
|
isCurrePage: false
|
||||||
})
|
})
|
||||||
if (this.data.isFirstShow) {
|
if (this.data.isFirstShow) {
|
||||||
this.setData({
|
this.setData({
|
||||||
|
|
@ -218,6 +266,9 @@ Page({
|
||||||
title: '重连中',
|
title: '重连中',
|
||||||
mask: true
|
mask: true
|
||||||
})
|
})
|
||||||
|
this.setData({
|
||||||
|
isReconnecTime: true,
|
||||||
|
})
|
||||||
agora.destroy(() => {
|
agora.destroy(() => {
|
||||||
reconnectTime = setInterval(() => {
|
reconnectTime = setInterval(() => {
|
||||||
if (getSignIr() === signalR.HubConnectionState.Connected) {
|
if (getSignIr() === signalR.HubConnectionState.Connected) {
|
||||||
|
|
@ -232,13 +283,21 @@ Page({
|
||||||
},
|
},
|
||||||
onHide() {
|
onHide() {
|
||||||
this.setData({
|
this.setData({
|
||||||
isCurrePage: false
|
isCurrePage: true,
|
||||||
|
isReconnecTime: false
|
||||||
})
|
})
|
||||||
if (reconnectTime) {
|
if (reconnectTime) {
|
||||||
clearInterval(reconnectTime)
|
clearInterval(reconnectTime)
|
||||||
reconnectTime = ''
|
reconnectTime = ''
|
||||||
}
|
}
|
||||||
wx.hideLoading()
|
if (isReconnecTimeSetTimeout) {
|
||||||
|
clearInterval(isReconnecTimeSetTimeout)
|
||||||
|
isReconnecTimeSetTimeout = ''
|
||||||
|
}
|
||||||
|
if (refreshTime) {
|
||||||
|
clearInterval(refreshTime)
|
||||||
|
refreshTime = ''
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onUnload() {
|
onUnload() {
|
||||||
wx.offNetworkStatusChange(this.listener)
|
wx.offNetworkStatusChange(this.listener)
|
||||||
|
|
@ -246,6 +305,14 @@ Page({
|
||||||
clearInterval(reconnectTime)
|
clearInterval(reconnectTime)
|
||||||
reconnectTime = ''
|
reconnectTime = ''
|
||||||
}
|
}
|
||||||
|
if (isReconnecTimeSetTimeout) {
|
||||||
|
clearInterval(isReconnecTimeSetTimeout)
|
||||||
|
isReconnecTimeSetTimeout = ''
|
||||||
|
}
|
||||||
|
if (refreshTime) {
|
||||||
|
clearInterval(refreshTime)
|
||||||
|
refreshTime = ''
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async reconnecFun() {
|
async reconnecFun() {
|
||||||
offSignalr()
|
offSignalr()
|
||||||
|
|
@ -258,37 +325,39 @@ Page({
|
||||||
this.startSignalr()
|
this.startSignalr()
|
||||||
await this.getRoomUser()
|
await this.getRoomUser()
|
||||||
await this.getShowUser()
|
await this.getShowUser()
|
||||||
|
Message.success({
|
||||||
|
context: this,
|
||||||
|
offset: [20, 32],
|
||||||
|
duration: 3000,
|
||||||
|
content: '重连成功',
|
||||||
|
});
|
||||||
|
this.setData({
|
||||||
|
isReconnecTime: false,
|
||||||
|
isReconnec: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.setData({
|
||||||
|
isReconnec: true
|
||||||
|
})
|
||||||
}
|
}
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
Message.success({
|
|
||||||
context: this,
|
|
||||||
offset: [20, 32],
|
|
||||||
duration: 3000,
|
|
||||||
content: bool ? '重连成功' : '重连失败,请退出房间重试!',
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
Message.error({
|
this.setData({
|
||||||
context: this,
|
isReconnec: true
|
||||||
offset: [20, 32],
|
})
|
||||||
duration: 3000,
|
|
||||||
content: '重连失败,请退出房间重试!',
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
Message.error({
|
this.setData({
|
||||||
context: this,
|
isReconnec: true
|
||||||
offset: [20, 32],
|
})
|
||||||
duration: 3000,
|
|
||||||
content: '重连失败,请退出房间重试!',
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
startSignalr() {
|
startSignalr() {
|
||||||
onSignalr(async (item) => {
|
onSignalr(async (item) => {
|
||||||
if (!this.data.isCurrePage) {
|
if (this.data.isCurrePage) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const userInfo: any = await getStorage('user')
|
const userInfo: any = await getStorage('user')
|
||||||
|
|
@ -922,6 +991,16 @@ Page({
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
closeRoom() {
|
||||||
|
wx.disableAlertBeforeUnload({
|
||||||
|
complete: () => {
|
||||||
|
this.setData({
|
||||||
|
isReconnec: false
|
||||||
|
})
|
||||||
|
wx.navigateBack()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
scroll() {
|
scroll() {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -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}}" />
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="meeting-content-smallvideo-box-view-canvas" wx:if="{{item.src}}">
|
<view class="meeting-content-smallvideo-box-view-canvas" wx:if="{{item.src}}">
|
||||||
<live-pusher wx:if="{{user.uid === item.uid}}" url="{{item.src}}" mode="RTC" object-fit="contain" bindstatechange="recorderStateChange" background-mute enable-mic="{{footerList[1].active}}" enable-camera max-bitrate="500" min-bitrate="200" autopush enable-agc enable-ans device-position="front" class="meeting-content-smallvideo-box-view-canvas-play" data-uid="{{item.uid}}" bindaudiovolumenotify="playerAudioVolumenotify" beauty='{{9}}' whiteness='{{9}}' />
|
<live-pusher wx:if="{{user.uid === item.uid}}" url="{{item.src}}" mode="RTC" object-fit="contain" bindstatechange="recorderStateChange" background-mute enable-mic="{{footerList[1].active}}" enable-camera max-bitrate="500" min-bitrate="200" autopush enable-agc enable-ans device-position="front" class="meeting-content-smallvideo-box-view-canvas-play" data-uid="{{item.uid}}" bindaudiovolumenotify="playerAudioVolumenotify" beauty='{{9}}' whiteness='{{9}}' />
|
||||||
<live-player src="{{item.src}}" class="meeting-content-smallvideo-box-view-canvas-play" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain" data-uid="{{item.uid}}" bindaudiovolumenotify="playerAudioVolumenotify" wx:else />
|
<live-player src="{{item.src}}" class="meeting-content-smallvideo-box-view-canvas-play" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain" data-uid="{{item.uid}}" bindaudiovolumenotify="playerAudioVolumenotify" wx:else />
|
||||||
</view>
|
</view>
|
||||||
<view class="meeting-content-smallvideo-box-view-user">
|
<view class="meeting-content-smallvideo-box-view-user">
|
||||||
|
|
@ -134,4 +134,5 @@
|
||||||
<view class="chat-popup-input-submit" bind:tap="sendMeg">发送</view>
|
<view class="chat-popup-input-submit" bind:tap="sendMeg">发送</view>
|
||||||
</view>
|
</view>
|
||||||
</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}}" />
|
||||||
|
|
@ -38,7 +38,7 @@ function requestMethods(obj, callback) {
|
||||||
wx.request({
|
wx.request({
|
||||||
...obj.params,
|
...obj.params,
|
||||||
url: apiBase + obj.params.url,
|
url: apiBase + obj.params.url,
|
||||||
timeout: 500,
|
timeout: 10000,
|
||||||
header: {
|
header: {
|
||||||
'content-type': 'application/json',
|
'content-type': 'application/json',
|
||||||
'Authorization': `Bearer ${obj.token}`
|
'Authorization': `Bearer ${obj.token}`
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue