livekit-client 1.2.5 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/livekit-client.esm.mjs +30 -17
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/track/RemoteAudioTrack.d.ts +1 -1
- package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/room/Room.ts +9 -10
- package/src/room/track/RemoteAudioTrack.ts +15 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,qBAAqB,EAItB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,WAAW,EAAE,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,SAAmC,MAAM,aAAa,CAAC;AAG9D,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAElE,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAA0B,WAAW,EAAE,MAAM,eAAe,CAAC;AAIpE,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,YAAY,iBAAiB;CAC9B;AAED,oEAAoE;AACpE,eAAO,MAAM,SAAS,wBAAkB,CAAC;mCAUK,aAAa,kBAAkB,CAAC;AAR9E;;;;;;;GAOG;AACH,cAAM,IAAK,SAAQ,SAA4D;IAC7E,KAAK,EAAE,eAAe,CAAgC;IAEtD,wCAAwC;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE7C;;;OAGG;IACH,cAAc,EAAE,WAAW,EAAE,CAAM;IAEnC,gBAAgB;IAChB,MAAM,EAAG,SAAS,CAAC;IAGnB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAM;IAEjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAM;IAElB,8BAA8B;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,oBAAoB;IACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IAEzC,sBAAsB;IACtB,OAAO,EAAE,WAAW,CAAC;IAErB,OAAO,CAAC,aAAa,CAAsB;IAE3C,8BAA8B;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAqB;IAEzC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAAC,CAAkB;IAE1C,yDAAyD;IACzD,OAAO,CAAC,aAAa,CAAC,CAAe;IAErC,wDAAwD;IACxD,OAAO,CAAC,eAAe,CAAC,CAAe;IAEvC;;;OAGG;gBACS,OAAO,CAAC,EAAE,WAAW;IAwBjC,OAAO,CAAC,YAAY;IAsDpB;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CACpB,IAAI,CAAC,EAAE,eAAe,EACtB,kBAAkB,GAAE,OAAc,GACjC,OAAO,CAAC,eAAe,EAAE,CAAC;IAI7B,OAAO,QAAS,MAAM,SAAS,MAAM,SAAS,kBAAkB,KAAG,QAAQ,IAAI,CAAC,
|
1
|
+
{"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,qBAAqB,EAItB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,WAAW,EAAE,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,SAAmC,MAAM,aAAa,CAAC;AAG9D,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAElE,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAA0B,WAAW,EAAE,MAAM,eAAe,CAAC;AAIpE,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,YAAY,iBAAiB;CAC9B;AAED,oEAAoE;AACpE,eAAO,MAAM,SAAS,wBAAkB,CAAC;mCAUK,aAAa,kBAAkB,CAAC;AAR9E;;;;;;;GAOG;AACH,cAAM,IAAK,SAAQ,SAA4D;IAC7E,KAAK,EAAE,eAAe,CAAgC;IAEtD,wCAAwC;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE7C;;;OAGG;IACH,cAAc,EAAE,WAAW,EAAE,CAAM;IAEnC,gBAAgB;IAChB,MAAM,EAAG,SAAS,CAAC;IAGnB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAM;IAEjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAM;IAElB,8BAA8B;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,oBAAoB;IACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IAEzC,sBAAsB;IACtB,OAAO,EAAE,WAAW,CAAC;IAErB,OAAO,CAAC,aAAa,CAAsB;IAE3C,8BAA8B;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAqB;IAEzC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAAC,CAAkB;IAE1C,yDAAyD;IACzD,OAAO,CAAC,aAAa,CAAC,CAAe;IAErC,wDAAwD;IACxD,OAAO,CAAC,eAAe,CAAC,CAAe;IAEvC;;;OAGG;gBACS,OAAO,CAAC,EAAE,WAAW;IAwBjC,OAAO,CAAC,YAAY;IAsDpB;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CACpB,IAAI,CAAC,EAAE,eAAe,EACtB,kBAAkB,GAAE,OAAc,GACjC,OAAO,CAAC,eAAe,EAAE,CAAC;IAI7B,OAAO,QAAS,MAAM,SAAS,MAAM,SAAS,kBAAkB,KAAG,QAAQ,IAAI,CAAC,CA0I9E;IAEF;;OAEG;IACH,UAAU,0CAqBR;IAEF;;;;OAIG;IACH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAUnE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IA8CjC,OAAO,CAAC,cAAc,CAEpB;IAEF;;;;;;OAMG;IACG,UAAU;IAuBhB;;OAEG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;;;;;;;;OASG;IACG,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM;IAoChE,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,gBAAgB,CAYtB;IAEF,OAAO,CAAC,eAAe,CA6CrB;IAEF,OAAO,CAAC,gBAAgB;IA0DxB,OAAO,CAAC,wBAAwB,CAgC9B;IAEF,OAAO,CAAC,6BAA6B;IAerC,OAAO,CAAC,0BAA0B,CAgChC;IAGF,OAAO,CAAC,qBAAqB,CA0B3B;IAEF,OAAO,CAAC,uBAAuB,CAmB7B;IAEF,OAAO,CAAC,kCAAkC,CAWxC;IAEF,OAAO,CAAC,gBAAgB,CAQtB;IAEF,OAAO,CAAC,0BAA0B,CAMhC;IAEF,OAAO,CAAC,yBAAyB,CAO/B;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,gBAAgB,CAGtB;IAEF,OAAO,CAAC,6BAA6B,CAWnC;IAEF,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAmF9B,OAAO,CAAC,aAAa;IAuCrB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,iCAAiC,CAEvC;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,qBAAqB,CAE3B;IAEF,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,+BAA+B,CAErC;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,oCAAoC,CAE1C;IAGF,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACrC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACzC,OAAO;CAIX;AAED,eAAe,IAAI,CAAC;AAEpB,oBAAY,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,0EAA0E;IAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,sBAAsB,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,oBAAoB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/D,uBAAuB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClE,cAAc,EAAE,CAAC,WAAW,EAAE,sBAAsB,EAAE,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9F,eAAe,EAAE,CACf,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,sBAAsB,EACnC,WAAW,EAAE,iBAAiB,KAC3B,IAAI,CAAC;IACV,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpF,gBAAgB,EAAE,CAAC,WAAW,EAAE,sBAAsB,EAAE,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChG,iBAAiB,EAAE,CACjB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,sBAAsB,EACnC,WAAW,EAAE,iBAAiB,KAC3B,IAAI,CAAC;IACV,UAAU,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9E,YAAY,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAChF,mBAAmB,EAAE,CAAC,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjG,qBAAqB,EAAE,CACrB,WAAW,EAAE,qBAAqB,EAClC,WAAW,EAAE,gBAAgB,KAC1B,IAAI,CAAC;IACV,0BAA0B,EAAE,CAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,iBAAiB,GAAG,gBAAgB,KAC9C,IAAI,CAAC;IACV,6BAA6B,EAAE,CAC7B,eAAe,EAAE,qBAAqB,EACtC,WAAW,EAAE,iBAAiB,GAAG,gBAAgB,KAC9C,IAAI,CAAC;IACV,qBAAqB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC9D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CACZ,OAAO,EAAE,UAAU,EACnB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,IAAI,CAAC,EAAE,eAAe,KACnB,IAAI,CAAC;IACV,wBAAwB,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IACzF,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,uBAAuB,EAAE,CACvB,WAAW,EAAE,sBAAsB,EACnC,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,WAAW,EAAE,iBAAiB,KAC3B,IAAI,CAAC;IACV,kCAAkC,EAAE,CAClC,WAAW,EAAE,sBAAsB,EACnC,MAAM,EAAE,gBAAgB,CAAC,kBAAkB,EAC3C,WAAW,EAAE,iBAAiB,KAC3B,IAAI,CAAC;IACV,oBAAoB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC"}
|
@@ -9,7 +9,7 @@ export default class RemoteAudioTrack extends RemoteTrack {
|
|
9
9
|
*/
|
10
10
|
setVolume(volume: number): void;
|
11
11
|
/**
|
12
|
-
* gets the volume
|
12
|
+
* gets the volume of attached audio elements (loudest)
|
13
13
|
*/
|
14
14
|
getVolume(): number;
|
15
15
|
attach(): HTMLMediaElement;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteAudioTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/RemoteAudioTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAoC,MAAM,UAAU,CAAC;AAChF,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW;IACvD,OAAO,CAAC,SAAS,CAAC,CAAqB;IAEvC,OAAO,CAAC,aAAa,
|
1
|
+
{"version":3,"file":"RemoteAudioTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/RemoteAudioTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAoC,MAAM,UAAU,CAAC;AAChF,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW;IACvD,OAAO,CAAC,SAAS,CAAC,CAAqB;IAEvC,OAAO,CAAC,aAAa,CAAqB;gBAE9B,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc;IAIhF;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM;IAOxB;;OAEG;IACH,SAAS,IAAI,MAAM;IAanB,MAAM,IAAI,gBAAgB;IAC1B,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;IAanD,SAAS,CAAC,eAAe,sBAevB;cAEc,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;CAyB5E"}
|
package/package.json
CHANGED
package/src/room/Room.ts
CHANGED
@@ -303,6 +303,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
303
303
|
this.recreateEngine();
|
304
304
|
this.handleDisconnect(this.options.stopLocalTrackOnUnpublish);
|
305
305
|
reject(new ConnectionError('could not establish signal connection'));
|
306
|
+
return;
|
306
307
|
}
|
307
308
|
|
308
309
|
// don't return until ICE connected
|
@@ -335,11 +336,9 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
335
336
|
this.setAndEmitConnectionState(ConnectionState.Connected);
|
336
337
|
resolve();
|
337
338
|
});
|
338
|
-
});
|
339
|
+
}).finally(() => (this.connectFuture = undefined));
|
339
340
|
this.connectFuture = new Future(connectPromise);
|
340
341
|
|
341
|
-
this.connectFuture.promise.finally(() => (this.connectFuture = undefined));
|
342
|
-
|
343
342
|
return this.connectFuture.promise;
|
344
343
|
};
|
345
344
|
|
@@ -542,8 +541,8 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
542
541
|
// at that time, ICE connectivity has not been established so the track is not
|
543
542
|
// technically subscribed.
|
544
543
|
// We'll defer these events until when the room is connected or eventually disconnected.
|
545
|
-
if (this.connectFuture) {
|
546
|
-
this.connectFuture.promise.then(() => {
|
544
|
+
if (this.connectFuture || this.reconnectFuture) {
|
545
|
+
Promise.allSettled([this.connectFuture?.promise, this.reconnectFuture?.promise]).then(() => {
|
547
546
|
this.onTrackAdded(mediaTrack, stream, receiver);
|
548
547
|
});
|
549
548
|
return;
|
@@ -649,8 +648,8 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
649
648
|
if (this.connectFuture === this.reconnectFuture) {
|
650
649
|
this.connectFuture?.reject(undefined);
|
651
650
|
this.connectFuture = undefined;
|
652
|
-
this.reconnectFuture = undefined;
|
653
651
|
}
|
652
|
+
this.reconnectFuture = undefined;
|
654
653
|
|
655
654
|
this.participants.forEach((p) => {
|
656
655
|
p.tracks.forEach((pub) => {
|
@@ -726,10 +725,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
726
725
|
// when it's disconnected, send updates
|
727
726
|
if (info.state === ParticipantInfo_State.DISCONNECTED) {
|
728
727
|
this.handleParticipantDisconnected(info.sid, remoteParticipant);
|
729
|
-
} else if (isNewParticipant) {
|
730
|
-
// fire connected event
|
731
|
-
this.emitWhenConnected(RoomEvent.ParticipantConnected, remoteParticipant);
|
732
|
-
} else {
|
728
|
+
} else if (!isNewParticipant) {
|
733
729
|
// just update, no events
|
734
730
|
remoteParticipant.updateInfo(info);
|
735
731
|
}
|
@@ -929,6 +925,9 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
929
925
|
this.participants.set(id, participant);
|
930
926
|
if (info) {
|
931
927
|
this.identityToSid.set(info.identity, info.sid);
|
928
|
+
// if we have valid info and the participant wasn't in the map before, we can assume the participant is new
|
929
|
+
// firing here to make sure that `ParticipantConnected` fires before the initial track events
|
930
|
+
this.emitWhenConnected(RoomEvent.ParticipantConnected, participant);
|
932
931
|
}
|
933
932
|
|
934
933
|
// also forward events
|
@@ -5,11 +5,10 @@ import { Track } from './Track';
|
|
5
5
|
export default class RemoteAudioTrack extends RemoteTrack {
|
6
6
|
private prevStats?: AudioReceiverStats;
|
7
7
|
|
8
|
-
private elementVolume: number;
|
8
|
+
private elementVolume: number | undefined;
|
9
9
|
|
10
10
|
constructor(mediaTrack: MediaStreamTrack, sid: string, receiver?: RTCRtpReceiver) {
|
11
11
|
super(mediaTrack, sid, Track.Kind.Audio, receiver);
|
12
|
-
this.elementVolume = 1;
|
13
12
|
}
|
14
13
|
|
15
14
|
/**
|
@@ -23,10 +22,19 @@ export default class RemoteAudioTrack extends RemoteTrack {
|
|
23
22
|
}
|
24
23
|
|
25
24
|
/**
|
26
|
-
* gets the volume
|
25
|
+
* gets the volume of attached audio elements (loudest)
|
27
26
|
*/
|
28
27
|
getVolume(): number {
|
29
|
-
|
28
|
+
if (this.elementVolume) {
|
29
|
+
return this.elementVolume;
|
30
|
+
}
|
31
|
+
let highestVolume = 0;
|
32
|
+
this.attachedElements.forEach((element) => {
|
33
|
+
if (element.volume > highestVolume) {
|
34
|
+
highestVolume = element.volume;
|
35
|
+
}
|
36
|
+
});
|
37
|
+
return highestVolume;
|
30
38
|
}
|
31
39
|
|
32
40
|
attach(): HTMLMediaElement;
|
@@ -37,7 +45,9 @@ export default class RemoteAudioTrack extends RemoteTrack {
|
|
37
45
|
} else {
|
38
46
|
super.attach(element);
|
39
47
|
}
|
40
|
-
|
48
|
+
if (this.elementVolume) {
|
49
|
+
element.volume = this.elementVolume;
|
50
|
+
}
|
41
51
|
return element;
|
42
52
|
}
|
43
53
|
|