listen to local volume change only if in bubble conversation
This commit is contained in:
@@ -546,36 +546,35 @@ export const obtainedMediaConstraintStore = derived<Readable<MediaStreamConstrai
|
||||
export const localVolumeStore = readable<number | null>(null, (set) => {
|
||||
let timeout: ReturnType<typeof setTimeout>;
|
||||
const unsubscribe = localStreamStore.subscribe((localStreamStoreValue) => {
|
||||
console.log('LOCAL VOLUME STORE SUBSCRIBE TO LOCAL STREAM STORE');
|
||||
clearInterval(timeout);
|
||||
if (localStreamStoreValue.type === "error") {
|
||||
console.log('D1');
|
||||
set(null);
|
||||
return;
|
||||
}
|
||||
const soundMeter = new SoundMeter();
|
||||
const mediaStream = localStreamStoreValue.stream;
|
||||
if (mediaStream !== null && mediaStream.getAudioTracks().length > 0) {
|
||||
console.log('D3');
|
||||
console.log(localStreamStoreValue);
|
||||
soundMeter.connectToSource(mediaStream, new AudioContext());
|
||||
let error = false;
|
||||
|
||||
timeout = setInterval(() => {
|
||||
console.log('local time interval');
|
||||
try {
|
||||
set(soundMeter.getVolume());
|
||||
} catch (err) {
|
||||
if (!error) {
|
||||
console.error(err);
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
}, 100);
|
||||
|
||||
if (mediaStream === null || mediaStream.getAudioTracks().length <= 0) {
|
||||
set(null);
|
||||
return;
|
||||
}
|
||||
|
||||
soundMeter.connectToSource(mediaStream, new AudioContext());
|
||||
let error = false;
|
||||
|
||||
timeout = setInterval(() => {
|
||||
try {
|
||||
set(soundMeter.getVolume());
|
||||
} catch (err) {
|
||||
if (!error) {
|
||||
console.error(err);
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
|
||||
return () => {
|
||||
console.log('UNSUBSCRIBE FROM LOCAL STREAM STORE');
|
||||
unsubscribe();
|
||||
clearInterval(timeout);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user