listen to local volume change only if in bubble conversation

This commit is contained in:
Hanusiak Piotr
2022-02-03 13:43:20 +01:00
parent 4424c7cce1
commit 40aae25e11
3 changed files with 54 additions and 51 deletions
+18 -11
View File
@@ -169,7 +169,9 @@ export class GameScene extends DirtyScene {
private peerStoreUnsubscribe!: Unsubscriber;
private emoteUnsubscribe!: Unsubscriber;
private emoteMenuUnsubscribe!: Unsubscriber;
private volumeStoreUnsubscribes: Map<number, Unsubscriber> = new Map<number, Unsubscriber>();
private volumeStoreUnsubscribers: Map<number, Unsubscriber> = new Map<number, Unsubscriber>();
private localVolumeStoreUnsubscriber: Unsubscriber | undefined;
private followUsersColorStoreUnsubscribe!: Unsubscriber;
private biggestAvailableAreaStoreUnsubscribe!: () => void;
@@ -637,20 +639,13 @@ export class GameScene extends DirtyScene {
this.connect();
}
localVolumeStore.subscribe((volume) => {
if (volume) {
this.CurrentPlayer.showIconTalk(volume > 5);
this.markDirty(); // should be dirty from animation
}
});
let oldPeerNumber = 0;
this.peerStoreUnsubscribe = peerStore.subscribe((peers) => {
this.volumeStoreUnsubscribes.forEach(unsubscribe => unsubscribe());
this.volumeStoreUnsubscribes.clear();
this.volumeStoreUnsubscribers.forEach(unsubscribe => unsubscribe());
this.volumeStoreUnsubscribers.clear();
for (const [key, videoStream] of peers) {
this.volumeStoreUnsubscribes.set(key, videoStream.volumeStore.subscribe((volume) => {
this.volumeStoreUnsubscribers.set(key, videoStream.volumeStore.subscribe((volume) => {
if (volume) {
console.log(`${key}: ${volume}`);
this.MapPlayersByKey.get(key)?.showIconTalk(volume > 5);
@@ -665,6 +660,18 @@ export class GameScene extends DirtyScene {
} else if (newPeerNumber < oldPeerNumber) {
this.playSound("audio-webrtc-out");
}
if (newPeerNumber > 0) {
this.localVolumeStoreUnsubscriber = localVolumeStore.subscribe((volume) => {
if (volume) {
this.CurrentPlayer.showIconTalk(volume > 5);
this.markDirty(); // should be dirty from animation
}
});
} else {
if (this.localVolumeStoreUnsubscriber) {
this.localVolumeStoreUnsubscriber();
}
}
oldPeerNumber = newPeerNumber;
});