Skip to content

Commit

Permalink
Only set volume on attach if elementVolume has been previously set (#371
Browse files Browse the repository at this point in the history
)

* only set volume on attach if elementVolume has been previously set

* changeset
  • Loading branch information
lukasIO authored Aug 3, 2022
1 parent e195221 commit e1a004e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
5 changes: 5 additions & 0 deletions .changeset/stale-drinks-love.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'livekit-client': patch
---

only set volume on attach if elementVolume has been previously set
20 changes: 15 additions & 5 deletions src/room/track/RemoteAudioTrack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ import { Track } from './Track';
export default class RemoteAudioTrack extends RemoteTrack {
private prevStats?: AudioReceiverStats;

private elementVolume: number;
private elementVolume: number | undefined;

constructor(mediaTrack: MediaStreamTrack, sid: string, receiver?: RTCRtpReceiver) {
super(mediaTrack, sid, Track.Kind.Audio, receiver);
this.elementVolume = 1;
}

/**
Expand All @@ -23,10 +22,19 @@ export default class RemoteAudioTrack extends RemoteTrack {
}

/**
* gets the volume for all attached audio elements
* gets the volume of attached audio elements (loudest)
*/
getVolume(): number {
return this.elementVolume;
if (this.elementVolume) {
return this.elementVolume;
}
let highestVolume = 0;
this.attachedElements.forEach((element) => {
if (element.volume > highestVolume) {
highestVolume = element.volume;
}
});
return highestVolume;
}

attach(): HTMLMediaElement;
Expand All @@ -37,7 +45,9 @@ export default class RemoteAudioTrack extends RemoteTrack {
} else {
super.attach(element);
}
element.volume = this.elementVolume;
if (this.elementVolume) {
element.volume = this.elementVolume;
}
return element;
}

Expand Down

0 comments on commit e1a004e

Please sign in to comment.