@@ -44,13 +44,15 @@ export interface ICallFeedOpts {
4444export 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
5152type 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