@microsoft/live-share-media 1.0.0-preview.9 → 1.0.1
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/LICENSE +64 -61
- package/README.md +7 -13
- package/bin/IMediaPlayer.d.ts +20 -20
- package/bin/IMediaPlayer.js +6 -6
- package/bin/LiveMediaSession.d.ts +90 -94
- package/bin/LiveMediaSession.d.ts.map +1 -1
- package/bin/LiveMediaSession.js +228 -231
- package/bin/LiveMediaSession.js.map +1 -1
- package/bin/LiveMediaSessionCoordinator.d.ts +238 -227
- package/bin/LiveMediaSessionCoordinator.d.ts.map +1 -1
- package/bin/LiveMediaSessionCoordinator.js +476 -407
- package/bin/LiveMediaSessionCoordinator.js.map +1 -1
- package/bin/LiveMediaSessionCoordinatorSuspension.d.ts +19 -19
- package/bin/LiveMediaSessionCoordinatorSuspension.js +27 -27
- package/bin/MediaPlayerSynchronizer.d.ts +174 -163
- package/bin/MediaPlayerSynchronizer.d.ts.map +1 -1
- package/bin/MediaPlayerSynchronizer.js +503 -468
- package/bin/MediaPlayerSynchronizer.js.map +1 -1
- package/bin/MediaSessionActionThrottler.d.ts +11 -11
- package/bin/MediaSessionActionThrottler.js +13 -13
- package/bin/MediaSessionExtensions.d.ts +34 -34
- package/bin/MediaSessionExtensions.d.ts.map +1 -1
- package/bin/MediaSessionExtensions.js +12 -12
- package/bin/RepeatedActionThrottler.d.ts +19 -19
- package/bin/RepeatedActionThrottler.js +62 -62
- package/bin/RepeatedActionThrottler.js.map +1 -1
- package/bin/VolumeManager.d.ts +83 -83
- package/bin/VolumeManager.d.ts.map +1 -1
- package/bin/VolumeManager.js +174 -174
- package/bin/VolumeManager.js.map +1 -1
- package/bin/index.d.ts +13 -13
- package/bin/index.js +29 -29
- package/bin/internals/GroupCoordinatorState.d.ts +93 -92
- package/bin/internals/GroupCoordinatorState.d.ts.map +1 -1
- package/bin/internals/GroupCoordinatorState.js +407 -404
- package/bin/internals/GroupCoordinatorState.js.map +1 -1
- package/bin/internals/GroupPlaybackPosition.d.ts +67 -66
- package/bin/internals/GroupPlaybackPosition.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackPosition.js +165 -166
- package/bin/internals/GroupPlaybackPosition.js.map +1 -1
- package/bin/internals/GroupPlaybackTrack.d.ts +45 -45
- package/bin/internals/GroupPlaybackTrack.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrack.js +121 -121
- package/bin/internals/GroupPlaybackTrackData.d.ts +39 -39
- package/bin/internals/GroupPlaybackTrackData.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrackData.js +69 -69
- package/bin/internals/GroupTransportState.d.ts +49 -48
- package/bin/internals/GroupTransportState.d.ts.map +1 -1
- package/bin/internals/GroupTransportState.js +111 -111
- package/bin/internals/GroupTransportState.js.map +1 -1
- package/bin/internals/consts.d.ts +75 -72
- package/bin/internals/consts.d.ts.map +1 -1
- package/bin/internals/consts.js +84 -81
- package/bin/internals/consts.js.map +1 -1
- package/bin/internals/index.d.ts +10 -10
- package/bin/internals/index.js +26 -26
- package/package.json +16 -9
- package/src/LiveMediaSession.ts +24 -20
- package/src/LiveMediaSessionCoordinator.ts +101 -29
- package/src/MediaPlayerSynchronizer.ts +47 -15
- package/src/VolumeManager.ts +4 -1
- package/src/internals/GroupCoordinatorState.ts +50 -35
- package/src/internals/GroupPlaybackPosition.ts +8 -7
- package/src/internals/GroupPlaybackTrack.ts +2 -2
- package/src/internals/GroupPlaybackTrackData.ts +2 -2
- package/src/internals/GroupTransportState.ts +11 -4
- package/src/internals/consts.ts +4 -0
- package/typedoc.json +10 -0
- package/bin/EphemeralMediaSession.d.ts +0 -102
- package/bin/EphemeralMediaSession.d.ts.map +0 -1
- package/bin/EphemeralMediaSession.js +0 -226
- package/bin/EphemeralMediaSession.js.map +0 -1
- package/bin/EphemeralMediaSessionCoordinator.d.ts +0 -228
- package/bin/EphemeralMediaSessionCoordinator.d.ts.map +0 -1
- package/bin/EphemeralMediaSessionCoordinator.js +0 -396
- package/bin/EphemeralMediaSessionCoordinator.js.map +0 -1
- package/bin/EphemeralMediaSessionCoordinatorSuspension.d.ts +0 -20
- package/bin/EphemeralMediaSessionCoordinatorSuspension.d.ts.map +0 -1
- package/bin/EphemeralMediaSessionCoordinatorSuspension.js +0 -28
- package/bin/EphemeralMediaSessionCoordinatorSuspension.js.map +0 -1
- package/bin/VolumeLimiter.d.ts +0 -70
- package/bin/VolumeLimiter.d.ts.map +0 -1
- package/bin/VolumeLimiter.js +0 -170
- package/bin/VolumeLimiter.js.map +0 -1
- package/src/test/GroupPlaybackPosition.spec.ts +0 -600
- package/src/test/GroupPlaybackTrack.spec.ts +0 -122
- package/src/test/SharedMediaSession.spec.ts +0 -149
- package/src/test/SharedMediaSessionCoordinator.spec.ts +0 -271
- package/src/test/VolumeManager.spec.ts +0 -219
package/bin/VolumeManager.js
CHANGED
|
@@ -1,175 +1,175 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the Microsoft Live Share SDK License.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.VolumeManager = exports.LimitLevelType = void 0;
|
|
8
|
-
const live_share_1 = require("@microsoft/live-share");
|
|
9
|
-
var LimitLevelType;
|
|
10
|
-
(function (LimitLevelType) {
|
|
11
|
-
LimitLevelType[LimitLevelType["fixed"] = 0] = "fixed";
|
|
12
|
-
LimitLevelType[LimitLevelType["percentage"] = 1] = "percentage";
|
|
13
|
-
})(LimitLevelType = exports.LimitLevelType || (exports.LimitLevelType = {}));
|
|
14
|
-
/**
|
|
15
|
-
* Smooth audio level changes when volume is modified, or if volume limiting has started/ended.
|
|
16
|
-
*/
|
|
17
|
-
class VolumeManager {
|
|
18
|
-
constructor(player) {
|
|
19
|
-
this._volumeChangeDuration = new live_share_1.TimeInterval(500);
|
|
20
|
-
// defaults to player volume
|
|
21
|
-
this._volume = 0.0;
|
|
22
|
-
this._isLimiting = false;
|
|
23
|
-
this._limitLevel = 0.1;
|
|
24
|
-
this._limitLevelType = LimitLevelType.fixed;
|
|
25
|
-
this._startTime = 0;
|
|
26
|
-
this._startVolume = 0;
|
|
27
|
-
this._running = false;
|
|
28
|
-
this._player = player;
|
|
29
|
-
this._volume = this._player.volume;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* The selected volume.
|
|
33
|
-
*
|
|
34
|
-
* @remarks
|
|
35
|
-
* Expressed as a value between 0.0 and 1.0. The default value is 1.0.
|
|
36
|
-
* Can be used for things like volume sliders.
|
|
37
|
-
*
|
|
38
|
-
* Does not return the current volume if limiting is enabled, but the desired volume.
|
|
39
|
-
*/
|
|
40
|
-
get volume() {
|
|
41
|
-
return this._volume;
|
|
42
|
-
}
|
|
43
|
-
set volume(value) {
|
|
44
|
-
if (value < 0 || value > 1.0) {
|
|
45
|
-
throw new Error(`VolumeManager: cannot set volume to ${value}. Level must be between 0.0 and 1.0.`);
|
|
46
|
-
}
|
|
47
|
-
this._volume = value;
|
|
48
|
-
this.startAdjusting();
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Target level to lower volume to.
|
|
52
|
-
*
|
|
53
|
-
* @remarks
|
|
54
|
-
* Expressed as a value between 0.0 and 1.0. The value is applied based upon the configured
|
|
55
|
-
* `levelType`. The default value is 0.1.
|
|
56
|
-
*
|
|
57
|
-
* For a level type of `LevelType.fixed` the value is the exact level the volume will be
|
|
58
|
-
* lowered to. The default value of 0.1 would cause the volume to be lowered to 0.1.
|
|
59
|
-
*
|
|
60
|
-
* For a level type of `LevelType.percentage` the value is the percentage by which the volume
|
|
61
|
-
* level should be lowered to. The default value of 0.1 would cause the volume to be lowered
|
|
62
|
-
* to 10% of its starting value.
|
|
63
|
-
*/
|
|
64
|
-
get limitLevel() {
|
|
65
|
-
return this._limitLevel;
|
|
66
|
-
}
|
|
67
|
-
set limitLevel(value) {
|
|
68
|
-
if (value < 0 || value > 1.0) {
|
|
69
|
-
throw new Error(`VolumeManager: cannot set level to ${value}. Level must be between 0.0 and 1.0.`);
|
|
70
|
-
}
|
|
71
|
-
this._limitLevel = value;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* The type of level represented by the `limitLevel` property.
|
|
75
|
-
*/
|
|
76
|
-
get limitLevelType() {
|
|
77
|
-
return this._limitLevelType;
|
|
78
|
-
}
|
|
79
|
-
set limitLevelType(value) {
|
|
80
|
-
this._limitLevelType = value;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Amount of time, in seconds, it should take to change the volume up or down to the desired level.
|
|
84
|
-
*
|
|
85
|
-
* @remarks
|
|
86
|
-
* Default `volumeChangeDuration` is 0.5 seconds.
|
|
87
|
-
*/
|
|
88
|
-
get volumeChangeDuration() {
|
|
89
|
-
return this._volumeChangeDuration.seconds;
|
|
90
|
-
}
|
|
91
|
-
set volumeChangeDuration(value) {
|
|
92
|
-
this._volumeChangeDuration.seconds = Math.abs(value);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Whether or not volume limiting is currently enabled.
|
|
96
|
-
*/
|
|
97
|
-
get isLimiting() {
|
|
98
|
-
return this._isLimiting;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Limits volume based on `limitLevel` and `limitLevelType` properties.
|
|
102
|
-
* @see `limitLevel`
|
|
103
|
-
* @see `limitLevelType`
|
|
104
|
-
*/
|
|
105
|
-
startLimiting() {
|
|
106
|
-
this._isLimiting = true;
|
|
107
|
-
this.startAdjusting();
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Disables volume limit.
|
|
111
|
-
*/
|
|
112
|
-
stopLimiting() {
|
|
113
|
-
this._isLimiting = false;
|
|
114
|
-
this.startAdjusting();
|
|
115
|
-
}
|
|
116
|
-
startAdjusting() {
|
|
117
|
-
const adjustVolume = () => {
|
|
118
|
-
// Schedule next animation frame if volume change not finished
|
|
119
|
-
if (this.millisSinceVolumeChangeStart() <=
|
|
120
|
-
this._volumeChangeDuration.milliseconds) {
|
|
121
|
-
this._player.volume = this.computeInterpolatedVolume();
|
|
122
|
-
this.scheduleAnimationFrame(adjustVolume);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
this._player.volume = this.computeTargetVolume();
|
|
126
|
-
this._running = false;
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
this._startTime = new Date().getTime();
|
|
130
|
-
this._startVolume = this._player.volume;
|
|
131
|
-
if (!this._running) {
|
|
132
|
-
this._running = true;
|
|
133
|
-
this.scheduleAnimationFrame(adjustVolume);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
scheduleAnimationFrame(callback) {
|
|
137
|
-
if (typeof requestAnimationFrame == "function") {
|
|
138
|
-
requestAnimationFrame(callback);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
setTimeout(callback, 20);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
computeInterpolatedVolume() {
|
|
145
|
-
const volumeChangeMillis = this._volumeChangeDuration.milliseconds;
|
|
146
|
-
const volumeDifference = this.computeTargetVolume() - this._startVolume;
|
|
147
|
-
const adjustmentFromStart = (volumeDifference / volumeChangeMillis) *
|
|
148
|
-
this.millisSinceVolumeChangeStart();
|
|
149
|
-
return this._startVolume + adjustmentFromStart;
|
|
150
|
-
}
|
|
151
|
-
computeTargetVolume() {
|
|
152
|
-
if (this._limitLevelType == LimitLevelType.percentage) {
|
|
153
|
-
if (this._isLimiting) {
|
|
154
|
-
return this._volume * this._limitLevel;
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
return this._volume;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
if (this._isLimiting && this._volume > this._limitLevel) {
|
|
162
|
-
return this._limitLevel;
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
return this._volume;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
millisSinceVolumeChangeStart() {
|
|
170
|
-
const now = new Date().getTime();
|
|
171
|
-
return now - this._startTime;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
exports.VolumeManager = VolumeManager;
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.VolumeManager = exports.LimitLevelType = void 0;
|
|
8
|
+
const live_share_1 = require("@microsoft/live-share");
|
|
9
|
+
var LimitLevelType;
|
|
10
|
+
(function (LimitLevelType) {
|
|
11
|
+
LimitLevelType[LimitLevelType["fixed"] = 0] = "fixed";
|
|
12
|
+
LimitLevelType[LimitLevelType["percentage"] = 1] = "percentage";
|
|
13
|
+
})(LimitLevelType = exports.LimitLevelType || (exports.LimitLevelType = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Smooth audio level changes when volume is modified, or if volume limiting has started/ended.
|
|
16
|
+
*/
|
|
17
|
+
class VolumeManager {
|
|
18
|
+
constructor(player) {
|
|
19
|
+
this._volumeChangeDuration = new live_share_1.TimeInterval(500);
|
|
20
|
+
// defaults to player volume
|
|
21
|
+
this._volume = 0.0;
|
|
22
|
+
this._isLimiting = false;
|
|
23
|
+
this._limitLevel = 0.1;
|
|
24
|
+
this._limitLevelType = LimitLevelType.fixed;
|
|
25
|
+
this._startTime = 0;
|
|
26
|
+
this._startVolume = 0;
|
|
27
|
+
this._running = false;
|
|
28
|
+
this._player = player;
|
|
29
|
+
this._volume = this._player.volume;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The selected volume.
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* Expressed as a value between 0.0 and 1.0. The default value is 1.0.
|
|
36
|
+
* Can be used for things like volume sliders.
|
|
37
|
+
*
|
|
38
|
+
* Does not return the current volume if limiting is enabled, but the desired volume.
|
|
39
|
+
*/
|
|
40
|
+
get volume() {
|
|
41
|
+
return this._volume;
|
|
42
|
+
}
|
|
43
|
+
set volume(value) {
|
|
44
|
+
if (value < 0 || value > 1.0) {
|
|
45
|
+
throw new Error(`VolumeManager: cannot set volume to ${value}. Level must be between 0.0 and 1.0.`);
|
|
46
|
+
}
|
|
47
|
+
this._volume = value;
|
|
48
|
+
this.startAdjusting();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Target level to lower volume to.
|
|
52
|
+
*
|
|
53
|
+
* @remarks
|
|
54
|
+
* Expressed as a value between 0.0 and 1.0. The value is applied based upon the configured
|
|
55
|
+
* `levelType`. The default value is 0.1.
|
|
56
|
+
*
|
|
57
|
+
* For a level type of `LevelType.fixed` the value is the exact level the volume will be
|
|
58
|
+
* lowered to. The default value of 0.1 would cause the volume to be lowered to 0.1.
|
|
59
|
+
*
|
|
60
|
+
* For a level type of `LevelType.percentage` the value is the percentage by which the volume
|
|
61
|
+
* level should be lowered to. The default value of 0.1 would cause the volume to be lowered
|
|
62
|
+
* to 10% of its starting value.
|
|
63
|
+
*/
|
|
64
|
+
get limitLevel() {
|
|
65
|
+
return this._limitLevel;
|
|
66
|
+
}
|
|
67
|
+
set limitLevel(value) {
|
|
68
|
+
if (value < 0 || value > 1.0) {
|
|
69
|
+
throw new Error(`VolumeManager: cannot set level to ${value}. Level must be between 0.0 and 1.0.`);
|
|
70
|
+
}
|
|
71
|
+
this._limitLevel = value;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The type of level represented by the `limitLevel` property.
|
|
75
|
+
*/
|
|
76
|
+
get limitLevelType() {
|
|
77
|
+
return this._limitLevelType;
|
|
78
|
+
}
|
|
79
|
+
set limitLevelType(value) {
|
|
80
|
+
this._limitLevelType = value;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Amount of time, in seconds, it should take to change the volume up or down to the desired level.
|
|
84
|
+
*
|
|
85
|
+
* @remarks
|
|
86
|
+
* Default `volumeChangeDuration` is 0.5 seconds.
|
|
87
|
+
*/
|
|
88
|
+
get volumeChangeDuration() {
|
|
89
|
+
return this._volumeChangeDuration.seconds;
|
|
90
|
+
}
|
|
91
|
+
set volumeChangeDuration(value) {
|
|
92
|
+
this._volumeChangeDuration.seconds = Math.abs(value);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Whether or not volume limiting is currently enabled.
|
|
96
|
+
*/
|
|
97
|
+
get isLimiting() {
|
|
98
|
+
return this._isLimiting;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Limits volume based on `limitLevel` and `limitLevelType` properties.
|
|
102
|
+
* @see `limitLevel`
|
|
103
|
+
* @see `limitLevelType`
|
|
104
|
+
*/
|
|
105
|
+
startLimiting() {
|
|
106
|
+
this._isLimiting = true;
|
|
107
|
+
this.startAdjusting();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Disables volume limit.
|
|
111
|
+
*/
|
|
112
|
+
stopLimiting() {
|
|
113
|
+
this._isLimiting = false;
|
|
114
|
+
this.startAdjusting();
|
|
115
|
+
}
|
|
116
|
+
startAdjusting() {
|
|
117
|
+
const adjustVolume = () => {
|
|
118
|
+
// Schedule next animation frame if volume change not finished
|
|
119
|
+
if (this.millisSinceVolumeChangeStart() <=
|
|
120
|
+
this._volumeChangeDuration.milliseconds) {
|
|
121
|
+
this._player.volume = this.computeInterpolatedVolume();
|
|
122
|
+
this.scheduleAnimationFrame(adjustVolume);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this._player.volume = this.computeTargetVolume();
|
|
126
|
+
this._running = false;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
this._startTime = new Date().getTime();
|
|
130
|
+
this._startVolume = this._player.volume;
|
|
131
|
+
if (!this._running) {
|
|
132
|
+
this._running = true;
|
|
133
|
+
this.scheduleAnimationFrame(adjustVolume);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
scheduleAnimationFrame(callback) {
|
|
137
|
+
if (typeof requestAnimationFrame == "function") {
|
|
138
|
+
requestAnimationFrame(callback);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
setTimeout(callback, Math.min(this._volumeChangeDuration.milliseconds / 25, 20));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
computeInterpolatedVolume() {
|
|
145
|
+
const volumeChangeMillis = this._volumeChangeDuration.milliseconds;
|
|
146
|
+
const volumeDifference = this.computeTargetVolume() - this._startVolume;
|
|
147
|
+
const adjustmentFromStart = (volumeDifference / volumeChangeMillis) *
|
|
148
|
+
this.millisSinceVolumeChangeStart();
|
|
149
|
+
return this._startVolume + adjustmentFromStart;
|
|
150
|
+
}
|
|
151
|
+
computeTargetVolume() {
|
|
152
|
+
if (this._limitLevelType == LimitLevelType.percentage) {
|
|
153
|
+
if (this._isLimiting) {
|
|
154
|
+
return this._volume * this._limitLevel;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
return this._volume;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
if (this._isLimiting && this._volume > this._limitLevel) {
|
|
162
|
+
return this._limitLevel;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
return this._volume;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
millisSinceVolumeChangeStart() {
|
|
170
|
+
const now = new Date().getTime();
|
|
171
|
+
return now - this._startTime;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
exports.VolumeManager = VolumeManager;
|
|
175
175
|
//# sourceMappingURL=VolumeManager.js.map
|
package/bin/VolumeManager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeManager.js","sourceRoot":"","sources":["../src/VolumeManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VolumeManager.js","sourceRoot":"","sources":["../src/VolumeManager.ts"],"names":[],"mappings":"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"}
|
package/bin/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
-
*/
|
|
5
|
-
export * from "./LiveMediaSession";
|
|
6
|
-
export * from "./LiveMediaSessionCoordinator";
|
|
7
|
-
export * from "./LiveMediaSessionCoordinatorSuspension";
|
|
8
|
-
export * from "./IMediaPlayer";
|
|
9
|
-
export * from "./MediaPlayerSynchronizer";
|
|
10
|
-
export * from "./MediaSessionActionThrottler";
|
|
11
|
-
export * from "./MediaSessionExtensions";
|
|
12
|
-
export * from "./RepeatedActionThrottler";
|
|
13
|
-
export * from "./VolumeManager";
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./LiveMediaSession";
|
|
6
|
+
export * from "./LiveMediaSessionCoordinator";
|
|
7
|
+
export * from "./LiveMediaSessionCoordinatorSuspension";
|
|
8
|
+
export * from "./IMediaPlayer";
|
|
9
|
+
export * from "./MediaPlayerSynchronizer";
|
|
10
|
+
export * from "./MediaSessionActionThrottler";
|
|
11
|
+
export * from "./MediaSessionExtensions";
|
|
12
|
+
export * from "./RepeatedActionThrottler";
|
|
13
|
+
export * from "./VolumeManager";
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/bin/index.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the Microsoft Live Share SDK License.
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
-
};
|
|
20
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
__exportStar(require("./LiveMediaSession"), exports);
|
|
22
|
-
__exportStar(require("./LiveMediaSessionCoordinator"), exports);
|
|
23
|
-
__exportStar(require("./LiveMediaSessionCoordinatorSuspension"), exports);
|
|
24
|
-
__exportStar(require("./IMediaPlayer"), exports);
|
|
25
|
-
__exportStar(require("./MediaPlayerSynchronizer"), exports);
|
|
26
|
-
__exportStar(require("./MediaSessionActionThrottler"), exports);
|
|
27
|
-
__exportStar(require("./MediaSessionExtensions"), exports);
|
|
28
|
-
__exportStar(require("./RepeatedActionThrottler"), exports);
|
|
29
|
-
__exportStar(require("./VolumeManager"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
__exportStar(require("./LiveMediaSession"), exports);
|
|
22
|
+
__exportStar(require("./LiveMediaSessionCoordinator"), exports);
|
|
23
|
+
__exportStar(require("./LiveMediaSessionCoordinatorSuspension"), exports);
|
|
24
|
+
__exportStar(require("./IMediaPlayer"), exports);
|
|
25
|
+
__exportStar(require("./MediaPlayerSynchronizer"), exports);
|
|
26
|
+
__exportStar(require("./MediaSessionActionThrottler"), exports);
|
|
27
|
+
__exportStar(require("./MediaSessionExtensions"), exports);
|
|
28
|
+
__exportStar(require("./RepeatedActionThrottler"), exports);
|
|
29
|
+
__exportStar(require("./VolumeManager"), exports);
|
|
30
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,93 +1,94 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
-
*/
|
|
5
|
-
/// <reference types="node" />
|
|
6
|
-
import {
|
|
7
|
-
import EventEmitter from "events";
|
|
8
|
-
import { ExtendedMediaMetadata, CoordinationWaitPoint, ExtendedMediaSessionPlaybackState, ExtendedMediaSessionActionDetails } from "../MediaSessionExtensions";
|
|
9
|
-
import { GroupPlaybackTrack, IPlaybackTrack } from "./GroupPlaybackTrack";
|
|
10
|
-
import { GroupTransportState, ITransportState } from "./GroupTransportState";
|
|
11
|
-
import { GroupPlaybackPosition } from "./GroupPlaybackPosition";
|
|
12
|
-
import { IMediaPlayerState } from "../LiveMediaSessionCoordinator";
|
|
13
|
-
import { GroupPlaybackTrackData, IPlaybackTrackData } from "./GroupPlaybackTrackData";
|
|
14
|
-
/**
|
|
15
|
-
* @hidden
|
|
16
|
-
*/
|
|
17
|
-
export interface IPositionUpdateEvent
|
|
18
|
-
track: IPlaybackTrack;
|
|
19
|
-
trackData: IPlaybackTrackData;
|
|
20
|
-
transport: ITransportState;
|
|
21
|
-
playbackState: ExtendedMediaSessionPlaybackState;
|
|
22
|
-
position: number;
|
|
23
|
-
waitPoint?: CoordinationWaitPoint;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* @hidden
|
|
27
|
-
*/
|
|
28
|
-
export interface ITransportCommandEvent
|
|
29
|
-
track: IPlaybackTrack;
|
|
30
|
-
position: number;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @hidden
|
|
34
|
-
*/
|
|
35
|
-
export interface ISetTrackEvent
|
|
36
|
-
metadata: ExtendedMediaMetadata | null;
|
|
37
|
-
waitPoints: CoordinationWaitPoint[];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @hidden
|
|
41
|
-
*/
|
|
42
|
-
export interface ISetTrackDataEvent
|
|
43
|
-
data: object | null;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* @hidden
|
|
47
|
-
*/
|
|
48
|
-
export interface ITriggerActionEvent extends IEvent {
|
|
49
|
-
details: ExtendedMediaSessionActionDetails;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* @hidden
|
|
53
|
-
*/
|
|
54
|
-
export declare enum GroupCoordinatorStateEvents {
|
|
55
|
-
newwaitpoint = "newwaitpoint",
|
|
56
|
-
triggeraction = "triggeraction"
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* @hidden
|
|
60
|
-
*/
|
|
61
|
-
export declare class GroupCoordinatorState extends EventEmitter {
|
|
62
|
-
private readonly _runtime;
|
|
63
|
-
private readonly
|
|
64
|
-
private readonly
|
|
65
|
-
private
|
|
66
|
-
private
|
|
67
|
-
private
|
|
68
|
-
private
|
|
69
|
-
private
|
|
70
|
-
private
|
|
71
|
-
private
|
|
72
|
-
private
|
|
73
|
-
private
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
get
|
|
77
|
-
get
|
|
78
|
-
get
|
|
79
|
-
get
|
|
80
|
-
get
|
|
81
|
-
get
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
private
|
|
92
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
/// <reference types="node" />
|
|
6
|
+
import { ILiveEvent, TimeInterval, IRuntimeSignaler, LiveShareRuntime, IEvent } from "@microsoft/live-share";
|
|
7
|
+
import EventEmitter from "events";
|
|
8
|
+
import { ExtendedMediaMetadata, CoordinationWaitPoint, ExtendedMediaSessionPlaybackState, ExtendedMediaSessionActionDetails } from "../MediaSessionExtensions";
|
|
9
|
+
import { GroupPlaybackTrack, IPlaybackTrack } from "./GroupPlaybackTrack";
|
|
10
|
+
import { GroupTransportState, ITransportState } from "./GroupTransportState";
|
|
11
|
+
import { GroupPlaybackPosition } from "./GroupPlaybackPosition";
|
|
12
|
+
import { IMediaPlayerState } from "../LiveMediaSessionCoordinator";
|
|
13
|
+
import { GroupPlaybackTrackData, IPlaybackTrackData } from "./GroupPlaybackTrackData";
|
|
14
|
+
/**
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
export interface IPositionUpdateEvent {
|
|
18
|
+
track: IPlaybackTrack;
|
|
19
|
+
trackData: IPlaybackTrackData;
|
|
20
|
+
transport: ITransportState;
|
|
21
|
+
playbackState: ExtendedMediaSessionPlaybackState;
|
|
22
|
+
position: number;
|
|
23
|
+
waitPoint?: CoordinationWaitPoint;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @hidden
|
|
27
|
+
*/
|
|
28
|
+
export interface ITransportCommandEvent {
|
|
29
|
+
track: IPlaybackTrack;
|
|
30
|
+
position: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
export interface ISetTrackEvent {
|
|
36
|
+
metadata: ExtendedMediaMetadata | null;
|
|
37
|
+
waitPoints: CoordinationWaitPoint[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @hidden
|
|
41
|
+
*/
|
|
42
|
+
export interface ISetTrackDataEvent {
|
|
43
|
+
data: object | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @hidden
|
|
47
|
+
*/
|
|
48
|
+
export interface ITriggerActionEvent extends IEvent {
|
|
49
|
+
details: ExtendedMediaSessionActionDetails;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @hidden
|
|
53
|
+
*/
|
|
54
|
+
export declare enum GroupCoordinatorStateEvents {
|
|
55
|
+
newwaitpoint = "newwaitpoint",
|
|
56
|
+
triggeraction = "triggeraction"
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @hidden
|
|
60
|
+
*/
|
|
61
|
+
export declare class GroupCoordinatorState extends EventEmitter {
|
|
62
|
+
private readonly _runtime;
|
|
63
|
+
private readonly _liveRuntime;
|
|
64
|
+
private readonly _logger;
|
|
65
|
+
private readonly _maxPlaybackDrift;
|
|
66
|
+
private _getMediaPlayerState;
|
|
67
|
+
private _playbackTrack;
|
|
68
|
+
private _playbackTrackData;
|
|
69
|
+
private _transportState;
|
|
70
|
+
private _playbackPosition;
|
|
71
|
+
private _suspensionCnt;
|
|
72
|
+
private _waitPoint?;
|
|
73
|
+
private _lastStateChange;
|
|
74
|
+
private _lastStateChangeTime;
|
|
75
|
+
constructor(runtime: IRuntimeSignaler, liveRuntime: LiveShareRuntime, maxPlaybackDrift: TimeInterval, positionUpdateInterval: TimeInterval, getMediaPlayerState: () => IMediaPlayerState);
|
|
76
|
+
get playbackTrack(): GroupPlaybackTrack;
|
|
77
|
+
get playbackTrackData(): GroupPlaybackTrackData;
|
|
78
|
+
get transportState(): GroupTransportState;
|
|
79
|
+
get playbackPosition(): GroupPlaybackPosition;
|
|
80
|
+
get waitingAt(): CoordinationWaitPoint | undefined;
|
|
81
|
+
get isSuspended(): boolean;
|
|
82
|
+
get isWaiting(): boolean;
|
|
83
|
+
beginSuspension(waitPoint?: CoordinationWaitPoint): void;
|
|
84
|
+
endSuspension(syncState: boolean): void;
|
|
85
|
+
createPositionUpdateEvent(state: IMediaPlayerState): IPositionUpdateEvent;
|
|
86
|
+
handleSetTrack(event: ILiveEvent<ISetTrackEvent>, local: boolean): void;
|
|
87
|
+
handleSetTrackData(event: ILiveEvent<ISetTrackDataEvent>, local: boolean): void;
|
|
88
|
+
handleTransportCommand(event: ILiveEvent<ITransportCommandEvent>, local: boolean): void;
|
|
89
|
+
handlePositionUpdate(event: Omit<ILiveEvent<IPositionUpdateEvent>, "name">, local: boolean): void;
|
|
90
|
+
syncLocalMediaSession(): Promise<void>;
|
|
91
|
+
private emitSetTrack;
|
|
92
|
+
private emitTriggerAction;
|
|
93
|
+
}
|
|
93
94
|
//# sourceMappingURL=GroupCoordinatorState.d.ts.map
|