Skip to content

Commit e876482

Browse files
Add local volume control (#2525)
1 parent 544b1c6 commit e876482

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/webrtc/callFeed.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,15 @@ export interface ICallFeedOpts {
4444
export enum CallFeedEvent {
4545
NewStream = "new_stream",
4646
MuteStateChanged = "mute_state_changed",
47+
LocalVolumeChanged = "local_volume_changed",
4748
VolumeChanged = "volume_changed",
4849
Speaking = "speaking",
4950
}
5051

5152
type EventHandlerMap = {
5253
[CallFeedEvent.NewStream]: (stream: MediaStream) => void;
5354
[CallFeedEvent.MuteStateChanged]: (audioMuted: boolean, videoMuted: boolean) => void;
55+
[CallFeedEvent.LocalVolumeChanged]: (localVolume: number) => void;
5456
[CallFeedEvent.VolumeChanged]: (volume: number) => void;
5557
[CallFeedEvent.Speaking]: (speaking: boolean) => void;
5658
};
@@ -66,6 +68,7 @@ export class CallFeed extends TypedEventEmitter<CallFeedEvent, EventHandlerMap>
6668
private roomId: string;
6769
private audioMuted: boolean;
6870
private videoMuted: boolean;
71+
private localVolume = 1;
6972
private measuringVolumeActivity = false;
7073
private audioContext: AudioContext;
7174
private analyser: AnalyserNode;
@@ -291,4 +294,13 @@ export class CallFeed extends TypedEventEmitter<CallFeedEvent, EventHandlerMap>
291294
releaseContext();
292295
}
293296
}
297+
298+
public getLocalVolume(): number {
299+
return this.localVolume;
300+
}
301+
302+
public setLocalVolume(localVolume: number): void {
303+
this.localVolume = localVolume;
304+
this.emit(CallFeedEvent.LocalVolumeChanged, localVolume);
305+
}
294306
}

0 commit comments

Comments
 (0)