@microsoft/live-share-media 0.5.1 → 1.0.0-preview.10
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/.nycrc.json +10 -10
- package/LICENSE +86 -86
- package/README.md +141 -137
- package/bin/IMediaPlayer.d.ts.map +1 -1
- package/bin/LiveMediaSession.d.ts +95 -0
- package/bin/LiveMediaSession.d.ts.map +1 -0
- package/bin/LiveMediaSession.js +232 -0
- package/bin/LiveMediaSession.js.map +1 -0
- package/bin/LiveMediaSessionCoordinator.d.ts +228 -0
- package/bin/LiveMediaSessionCoordinator.d.ts.map +1 -0
- package/bin/LiveMediaSessionCoordinator.js +408 -0
- package/bin/LiveMediaSessionCoordinator.js.map +1 -0
- package/bin/LiveMediaSessionCoordinatorSuspension.d.ts +20 -0
- package/bin/LiveMediaSessionCoordinatorSuspension.d.ts.map +1 -0
- package/bin/LiveMediaSessionCoordinatorSuspension.js +28 -0
- package/bin/LiveMediaSessionCoordinatorSuspension.js.map +1 -0
- package/bin/MediaPlayerSynchronizer.d.ts +11 -11
- package/bin/MediaPlayerSynchronizer.d.ts.map +1 -1
- package/bin/MediaPlayerSynchronizer.js +136 -76
- package/bin/MediaPlayerSynchronizer.js.map +1 -1
- package/bin/MediaSessionActionThrottler.d.ts +1 -1
- package/bin/MediaSessionActionThrottler.d.ts.map +1 -1
- package/bin/MediaSessionActionThrottler.js.map +1 -1
- package/bin/MediaSessionExtensions.d.ts.map +1 -1
- package/bin/RepeatedActionThrottler.d.ts +2 -2
- package/bin/RepeatedActionThrottler.d.ts.map +1 -1
- package/bin/RepeatedActionThrottler.js +9 -3
- package/bin/RepeatedActionThrottler.js.map +1 -1
- package/bin/VolumeManager.d.ts +84 -0
- package/bin/VolumeManager.d.ts.map +1 -0
- package/bin/VolumeManager.js +175 -0
- package/bin/VolumeManager.js.map +1 -0
- package/bin/index.d.ts +9 -9
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +4 -4
- package/bin/index.js.map +1 -1
- package/bin/internals/GroupCoordinatorState.d.ts +12 -12
- package/bin/internals/GroupCoordinatorState.d.ts.map +1 -1
- package/bin/internals/GroupCoordinatorState.js +94 -56
- package/bin/internals/GroupCoordinatorState.js.map +1 -1
- package/bin/internals/GroupPlaybackPosition.d.ts +3 -3
- package/bin/internals/GroupPlaybackPosition.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackPosition.js +24 -15
- package/bin/internals/GroupPlaybackPosition.js.map +1 -1
- package/bin/internals/GroupPlaybackTrack.d.ts +4 -4
- package/bin/internals/GroupPlaybackTrack.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrack.js +14 -4
- package/bin/internals/GroupPlaybackTrack.js.map +1 -1
- package/bin/internals/GroupPlaybackTrackData.d.ts +3 -3
- package/bin/internals/GroupPlaybackTrackData.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrackData.js +8 -4
- package/bin/internals/GroupPlaybackTrackData.js.map +1 -1
- package/bin/internals/GroupTransportState.d.ts +5 -5
- package/bin/internals/GroupTransportState.d.ts.map +1 -1
- package/bin/internals/GroupTransportState.js +28 -13
- package/bin/internals/GroupTransportState.js.map +1 -1
- package/bin/internals/consts.d.ts.map +1 -1
- package/bin/internals/consts.js +54 -54
- package/bin/internals/consts.js.map +1 -1
- package/bin/internals/index.d.ts +6 -6
- package/package.json +38 -38
- package/src/IMediaPlayer.ts +29 -21
- package/src/LiveMediaSession.ts +305 -0
- package/src/LiveMediaSessionCoordinator.ts +621 -0
- package/src/{EphemeralMediaSessionCoordinatorSuspension.ts → LiveMediaSessionCoordinatorSuspension.ts} +39 -31
- package/src/MediaPlayerSynchronizer.ts +636 -450
- package/src/MediaSessionActionThrottler.ts +16 -14
- package/src/MediaSessionExtensions.ts +52 -42
- package/src/RepeatedActionThrottler.ts +74 -56
- package/src/VolumeManager.ts +197 -0
- package/src/index.ts +14 -15
- package/src/internals/GroupCoordinatorState.ts +606 -446
- package/src/internals/GroupPlaybackPosition.ts +227 -193
- package/src/internals/GroupPlaybackTrack.ts +176 -147
- package/src/internals/GroupPlaybackTrackData.ts +98 -90
- package/src/internals/GroupTransportState.ts +157 -127
- package/src/internals/consts.ts +98 -80
- package/src/internals/index.ts +11 -11
- package/src/test/GroupPlaybackPosition.spec.ts +600 -340
- package/src/test/GroupPlaybackTrack.spec.ts +122 -66
- package/src/test/SharedMediaSession.spec.ts +149 -113
- package/src/test/SharedMediaSessionCoordinator.spec.ts +271 -231
- package/src/test/VolumeManager.spec.ts +219 -0
- package/tsconfig.build.json +8 -8
- package/tsconfig.json +76 -75
- package/src/EphemeralMediaSession.ts +0 -248
- package/src/EphemeralMediaSessionCoordinator.ts +0 -461
- package/src/VolumeLimiter.ts +0 -182
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the Microsoft Live Share SDK License.
|
|
5
|
-
*/
|
|
6
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
15
|
exports.MediaPlayerSynchronizer = exports.MediaPlayerSynchronizerEvents = void 0;
|
|
20
16
|
const events_1 = __importDefault(require("events"));
|
|
21
17
|
const MediaSessionExtensions_1 = require("./MediaSessionExtensions");
|
|
22
|
-
const
|
|
18
|
+
const VolumeManager_1 = require("./VolumeManager");
|
|
23
19
|
const internals_1 = require("./internals");
|
|
24
20
|
/**
|
|
25
21
|
* Events supported by `MediaPlayerSynchronizer` object.
|
|
@@ -52,12 +48,12 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
52
48
|
constructor(player, mediaSession, onEnd) {
|
|
53
49
|
super();
|
|
54
50
|
this._viewOnly = false;
|
|
55
|
-
this._expectedPlaybackState =
|
|
51
|
+
this._expectedPlaybackState = "none";
|
|
56
52
|
this._trackData = null;
|
|
57
53
|
this._player = player;
|
|
58
54
|
this._mediaSession = mediaSession;
|
|
59
55
|
this._logger = mediaSession.logger;
|
|
60
|
-
this.
|
|
56
|
+
this._volumeManager = new VolumeManager_1.VolumeManager(player);
|
|
61
57
|
this._onEnd = onEnd;
|
|
62
58
|
// Listen for player state requests
|
|
63
59
|
mediaSession.setRequestPlayerStateHandler(() => {
|
|
@@ -65,16 +61,17 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
65
61
|
let playbackState;
|
|
66
62
|
const src = this._player.currentSrc || this._player.src;
|
|
67
63
|
if (this._player.ended) {
|
|
68
|
-
playbackState =
|
|
64
|
+
playbackState = "ended";
|
|
69
65
|
}
|
|
70
|
-
else if (!src ||
|
|
71
|
-
|
|
66
|
+
else if (!src ||
|
|
67
|
+
(this._player.paused && this._player.currentTime < 1.0)) {
|
|
68
|
+
playbackState = "none";
|
|
72
69
|
}
|
|
73
70
|
else if (this._player.paused) {
|
|
74
|
-
playbackState =
|
|
71
|
+
playbackState = "paused";
|
|
75
72
|
}
|
|
76
73
|
else {
|
|
77
|
-
playbackState =
|
|
74
|
+
playbackState = "playing";
|
|
78
75
|
}
|
|
79
76
|
const state = {
|
|
80
77
|
metadata: { trackIdentifier: src },
|
|
@@ -82,58 +79,74 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
82
79
|
positionState: {
|
|
83
80
|
position: this._player.currentTime,
|
|
84
81
|
playbackRate: this._player.playbackRate,
|
|
85
|
-
duration: this._player.duration
|
|
82
|
+
duration: this._player.duration,
|
|
86
83
|
},
|
|
87
|
-
trackData: this._trackData
|
|
84
|
+
trackData: this._trackData,
|
|
88
85
|
};
|
|
89
86
|
return state;
|
|
90
87
|
});
|
|
91
88
|
// Listen for player events
|
|
92
89
|
this._onPlayerEvent = (evt) => {
|
|
93
|
-
if (evt.type !=
|
|
94
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayerEvent, null, {
|
|
90
|
+
if (evt.type != "timeupdate") {
|
|
91
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayerEvent, null, {
|
|
92
|
+
type: evt.type,
|
|
93
|
+
});
|
|
95
94
|
}
|
|
96
95
|
switch (evt.type) {
|
|
97
|
-
case
|
|
96
|
+
case "loadedmetadata":
|
|
97
|
+
// eslint-disable-next-line no-case-declarations
|
|
98
98
|
const src = this._player.currentSrc || this._player.src;
|
|
99
99
|
this._trackData = null;
|
|
100
100
|
break;
|
|
101
|
-
case
|
|
101
|
+
case "playing":
|
|
102
102
|
// Handle case for YouTube player where user can pause/play video by clicking on it.
|
|
103
103
|
// - Videos don't always start at 0.0 seconds.
|
|
104
|
-
if (this._expectedPlaybackState !=
|
|
105
|
-
if (this._mediaSession.coordinator.canPlayPause &&
|
|
106
|
-
this.
|
|
104
|
+
if (this._expectedPlaybackState != "playing") {
|
|
105
|
+
if (this._mediaSession.coordinator.canPlayPause &&
|
|
106
|
+
this._player.currentTime < 1.0) {
|
|
107
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
108
|
+
.UserTappedVideoToPlay);
|
|
107
109
|
this.play();
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
|
-
// block play if player state is playing when expected synced state is paused
|
|
111
|
-
// needed
|
|
112
|
-
if (this._expectedPlaybackState ===
|
|
112
|
+
// block play if player state is playing when expected synced state is paused and coordinator is not suspended.
|
|
113
|
+
// needed because cannot tell if its a user initiated event, so disallow play
|
|
114
|
+
if (this._expectedPlaybackState === "paused" &&
|
|
115
|
+
!this._mediaSession.coordinator.isSuspended) {
|
|
116
|
+
this._player.pause();
|
|
117
|
+
}
|
|
118
|
+
// block play if player state is playing when expected synced state is none and coordinator is not suspended.
|
|
119
|
+
// needed because user who is not in control should not be able to start, so disallow play
|
|
120
|
+
if (this._expectedPlaybackState === "none" &&
|
|
121
|
+
!this._mediaSession.coordinator.isSuspended) {
|
|
113
122
|
this._player.pause();
|
|
114
123
|
}
|
|
115
124
|
break;
|
|
116
|
-
case
|
|
117
|
-
// block pause if player state is paused when expected synced state is playing
|
|
118
|
-
// needed
|
|
119
|
-
if (this._expectedPlaybackState ===
|
|
125
|
+
case "pause":
|
|
126
|
+
// block pause if player state is paused when expected synced state is playing and coordinator is not suspended.
|
|
127
|
+
// needed because cannot tell if its a user initiated event, so disallow pause
|
|
128
|
+
if (this._expectedPlaybackState === "playing" &&
|
|
129
|
+
!this._mediaSession.coordinator.isSuspended) {
|
|
120
130
|
this._player.play();
|
|
121
131
|
}
|
|
122
132
|
break;
|
|
123
|
-
case
|
|
133
|
+
case "ratechange":
|
|
124
134
|
// Block rate changes unless suspended.
|
|
125
|
-
if (this._player.playbackRate != 1.0 &&
|
|
126
|
-
this.
|
|
135
|
+
if (this._player.playbackRate != 1.0 &&
|
|
136
|
+
!this._mediaSession.coordinator.isSuspended) {
|
|
137
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
138
|
+
.PlaybackRateChangeBlocked);
|
|
127
139
|
this._player.playbackRate = 1.0;
|
|
128
140
|
}
|
|
129
141
|
break;
|
|
130
|
-
case
|
|
131
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
142
|
+
case "blocked":
|
|
143
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
144
|
+
.PlaybackRateChangeBlocked);
|
|
132
145
|
break;
|
|
133
146
|
}
|
|
134
147
|
};
|
|
135
148
|
// Register for coordinator state changes
|
|
136
|
-
this._mediaSession.coordinator.on(MediaSessionExtensions_1.MediaSessionCoordinatorEvents.coordinatorstatechange, evt => this.emit(evt.type, evt));
|
|
149
|
+
this._mediaSession.coordinator.on(MediaSessionExtensions_1.MediaSessionCoordinatorEvents.coordinatorstatechange, (evt) => this.emit(evt.type, evt));
|
|
137
150
|
// Register media session actions
|
|
138
151
|
for (const action of MediaPlayerSynchronizer.SESSION_ACTIONS) {
|
|
139
152
|
this._mediaSession.setActionHandler(action, (details) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -141,45 +154,60 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
141
154
|
let error;
|
|
142
155
|
try {
|
|
143
156
|
switch (details.action) {
|
|
144
|
-
case
|
|
145
|
-
this._expectedPlaybackState =
|
|
157
|
+
case "play":
|
|
158
|
+
this._expectedPlaybackState = "playing";
|
|
146
159
|
if (this._player.paused) {
|
|
147
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this._player.currentTime
|
|
160
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
161
|
+
.PlayAction);
|
|
162
|
+
if (typeof details.seekTime == "number" &&
|
|
163
|
+
this._player.currentTime < 1.0) {
|
|
164
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents
|
|
165
|
+
.MediaPlayerSynchronizer
|
|
166
|
+
.SeekingPlayerToStartPosition, null, { position: details.seekTime });
|
|
167
|
+
this._player.currentTime =
|
|
168
|
+
details.seekTime;
|
|
151
169
|
}
|
|
152
170
|
// Reference: https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play#exceptions
|
|
153
171
|
yield this._player.play();
|
|
154
172
|
}
|
|
155
173
|
break;
|
|
156
|
-
case
|
|
157
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
this._player.currentTime
|
|
174
|
+
case "pause":
|
|
175
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
176
|
+
.PauseAction);
|
|
177
|
+
this._expectedPlaybackState = "paused";
|
|
178
|
+
if (typeof details.seekTime == "number" &&
|
|
179
|
+
this._player.currentTime < 1.0) {
|
|
180
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
181
|
+
.SeekingPlayerToStartPosition, null, { position: details.seekTime });
|
|
182
|
+
this._player.currentTime =
|
|
183
|
+
details.seekTime;
|
|
162
184
|
}
|
|
163
185
|
this._player.pause();
|
|
164
186
|
break;
|
|
165
|
-
case
|
|
166
|
-
if (typeof details.seekTime ==
|
|
167
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
168
|
-
|
|
187
|
+
case "seekto":
|
|
188
|
+
if (typeof details.seekTime == "number") {
|
|
189
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
190
|
+
.SeekToAction, null, { position: details.seekTime });
|
|
191
|
+
this._player.currentTime =
|
|
192
|
+
details.seekTime;
|
|
169
193
|
}
|
|
170
194
|
break;
|
|
171
|
-
case
|
|
172
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
173
|
-
|
|
174
|
-
this.
|
|
195
|
+
case "settrack":
|
|
196
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
197
|
+
.SetTrackAction);
|
|
198
|
+
this._expectedPlaybackState = "none";
|
|
199
|
+
this._player.src =
|
|
200
|
+
details.metadata.trackIdentifier;
|
|
175
201
|
this._player.load();
|
|
176
202
|
break;
|
|
177
|
-
case
|
|
178
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
203
|
+
case "datachange":
|
|
204
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
205
|
+
.DataChangeAction);
|
|
179
206
|
break;
|
|
180
|
-
case
|
|
181
|
-
if (typeof details.seekTime ==
|
|
182
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
207
|
+
case "catchup":
|
|
208
|
+
if (typeof details.seekTime == "number") {
|
|
209
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
210
|
+
.CatchupAction, null, { position: details.seekTime });
|
|
183
211
|
this.catchupPlayer(details.seekTime);
|
|
184
212
|
}
|
|
185
213
|
break;
|
|
@@ -237,8 +265,8 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
237
265
|
/**
|
|
238
266
|
* Volume limiter used to temporarily reduce the videos volume when someone speaks in a meeting.
|
|
239
267
|
*/
|
|
240
|
-
get
|
|
241
|
-
return this.
|
|
268
|
+
get volumeManager() {
|
|
269
|
+
return this._volumeManager;
|
|
242
270
|
}
|
|
243
271
|
/**
|
|
244
272
|
* Registers a new event listener.
|
|
@@ -310,9 +338,11 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
310
338
|
this._player.currentTime = seekTo;
|
|
311
339
|
const suspension = this._seekSuspension;
|
|
312
340
|
this._seekSuspension = undefined;
|
|
313
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.EndSeekCalled, null, {
|
|
341
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.EndSeekCalled, null, {
|
|
342
|
+
position: seekTo,
|
|
343
|
+
});
|
|
314
344
|
suspension.end(seekTo);
|
|
315
|
-
this.dispatchUserAction({ action:
|
|
345
|
+
this.dispatchUserAction({ action: "seekto", seekTime: seekTo });
|
|
316
346
|
}
|
|
317
347
|
/**
|
|
318
348
|
* Tells the group to begin playing the current video.
|
|
@@ -323,9 +353,9 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
323
353
|
*/
|
|
324
354
|
play() {
|
|
325
355
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayCalled);
|
|
326
|
-
this._expectedPlaybackState =
|
|
356
|
+
this._expectedPlaybackState = "playing";
|
|
327
357
|
this._mediaSession.coordinator.play();
|
|
328
|
-
this.dispatchUserAction({ action:
|
|
358
|
+
this.dispatchUserAction({ action: "play" });
|
|
329
359
|
}
|
|
330
360
|
/**
|
|
331
361
|
* Tells the group to pause the current video.
|
|
@@ -336,9 +366,9 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
336
366
|
*/
|
|
337
367
|
pause() {
|
|
338
368
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PauseCalled);
|
|
339
|
-
this._expectedPlaybackState =
|
|
369
|
+
this._expectedPlaybackState = "paused";
|
|
340
370
|
this._mediaSession.coordinator.pause();
|
|
341
|
-
this.dispatchUserAction({ action:
|
|
371
|
+
this.dispatchUserAction({ action: "pause" });
|
|
342
372
|
}
|
|
343
373
|
/**
|
|
344
374
|
* Tells the group to seek the current video to a new playback position.
|
|
@@ -354,7 +384,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
354
384
|
this._player.currentTime = time;
|
|
355
385
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SeekToCalled, null, { position: time });
|
|
356
386
|
this._mediaSession.coordinator.seekTo(time);
|
|
357
|
-
this.dispatchUserAction({ action:
|
|
387
|
+
this.dispatchUserAction({ action: "seekto", seekTime: time });
|
|
358
388
|
}
|
|
359
389
|
/**
|
|
360
390
|
* Tells the group to change to a new track.
|
|
@@ -366,7 +396,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
366
396
|
setTrack(track, waitPoints) {
|
|
367
397
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackCalled);
|
|
368
398
|
this._mediaSession.coordinator.setTrack(track, waitPoints);
|
|
369
|
-
this.dispatchUserAction({ action:
|
|
399
|
+
this.dispatchUserAction({ action: "settrack", metadata: track });
|
|
370
400
|
}
|
|
371
401
|
/**
|
|
372
402
|
* Updates the current tracks data object.
|
|
@@ -379,22 +409,36 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
379
409
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackDataCalled);
|
|
380
410
|
this._trackData = data;
|
|
381
411
|
this._mediaSession.coordinator.setTrackData(data);
|
|
382
|
-
this.dispatchUserAction({ action:
|
|
412
|
+
this.dispatchUserAction({ action: "datachange", data: data });
|
|
383
413
|
}
|
|
384
414
|
dispatchGroupAction(details, delay = false, error) {
|
|
385
415
|
if (delay) {
|
|
386
|
-
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
416
|
+
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
417
|
+
type: MediaPlayerSynchronizerEvents.groupaction,
|
|
418
|
+
details: details,
|
|
419
|
+
playerError: error,
|
|
420
|
+
}), 50);
|
|
387
421
|
}
|
|
388
422
|
else {
|
|
389
|
-
this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
423
|
+
this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
424
|
+
type: MediaPlayerSynchronizerEvents.groupaction,
|
|
425
|
+
details: details,
|
|
426
|
+
error,
|
|
427
|
+
});
|
|
390
428
|
}
|
|
391
429
|
}
|
|
392
430
|
dispatchUserAction(details, delay = false) {
|
|
393
431
|
if (delay) {
|
|
394
|
-
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
432
|
+
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
433
|
+
type: MediaPlayerSynchronizerEvents.useraction,
|
|
434
|
+
details: details,
|
|
435
|
+
}), 50);
|
|
395
436
|
}
|
|
396
437
|
else {
|
|
397
|
-
this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
438
|
+
this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
439
|
+
type: MediaPlayerSynchronizerEvents.useraction,
|
|
440
|
+
details: details,
|
|
441
|
+
});
|
|
398
442
|
}
|
|
399
443
|
}
|
|
400
444
|
catchupPlayer(time) {
|
|
@@ -404,6 +448,22 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
404
448
|
}
|
|
405
449
|
}
|
|
406
450
|
exports.MediaPlayerSynchronizer = MediaPlayerSynchronizer;
|
|
407
|
-
MediaPlayerSynchronizer.SESSION_ACTIONS = [
|
|
408
|
-
|
|
451
|
+
MediaPlayerSynchronizer.SESSION_ACTIONS = [
|
|
452
|
+
"play",
|
|
453
|
+
"pause",
|
|
454
|
+
"seekto",
|
|
455
|
+
"settrack",
|
|
456
|
+
"datachange",
|
|
457
|
+
"catchup",
|
|
458
|
+
"wait",
|
|
459
|
+
];
|
|
460
|
+
MediaPlayerSynchronizer.PLAYER_EVENTS = [
|
|
461
|
+
"playing",
|
|
462
|
+
"pause",
|
|
463
|
+
"ratechange",
|
|
464
|
+
"timeupdate",
|
|
465
|
+
"ended",
|
|
466
|
+
"loadedmetadata",
|
|
467
|
+
"blocked",
|
|
468
|
+
];
|
|
409
469
|
//# sourceMappingURL=MediaPlayerSynchronizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaPlayerSynchronizer.js","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MediaPlayerSynchronizer.js","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
import { ExtendedMediaSessionActionDetails } from
|
|
5
|
+
import { ExtendedMediaSessionActionDetails } from "./MediaSessionExtensions";
|
|
6
6
|
/**
|
|
7
7
|
* Base class for action throttlers.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSessionActionThrottler.d.ts","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E;;GAEG;AACH,8BAAsB,2BAA2B;aAC7B,SAAS,
|
|
1
|
+
{"version":3,"file":"MediaSessionActionThrottler.d.ts","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E;;GAEG;AACH,8BAAsB,2BAA2B;aAC7B,SAAS,CACrB,OAAO,EAAE,iCAAiC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GACpC,IAAI;CACV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSessionActionThrottler.js","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACH,MAAsB,2BAA2B;
|
|
1
|
+
{"version":3,"file":"MediaSessionActionThrottler.js","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACH,MAAsB,2BAA2B;CAKhD;AALD,kEAKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSessionExtensions.d.ts","sourceRoot":"","sources":["../src/MediaSessionExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iCAAiC;IAC9C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,oBAAY,4BAA4B,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;CAClC;AAED,oBAAY,0BAA0B,
|
|
1
|
+
{"version":3,"file":"MediaSessionExtensions.d.ts","sourceRoot":"","sources":["../src/MediaSessionExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iCAAiC;IAC9C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,oBAAY,4BAA4B,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;CAClC;AAED,oBAAY,0BAA0B,GAChC,kBAAkB,GAClB,UAAU,GACV,MAAM,GACN,SAAS,GACT,YAAY,GACZ,SAAS,CAAC;AAEhB,oBAAY,iCAAiC,GACvC,yBAAyB,GACzB,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEd,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC;IAC9C,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/C"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
import { MediaSessionActionThrottler } from
|
|
6
|
-
import { ExtendedMediaSessionActionDetails } from
|
|
5
|
+
import { MediaSessionActionThrottler } from "./MediaSessionActionThrottler";
|
|
6
|
+
import { ExtendedMediaSessionActionDetails } from "./MediaSessionExtensions";
|
|
7
7
|
/**
|
|
8
8
|
* A Throttler that passes through all actions but will only let an action be repeated once every 2 seconds.
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatedActionThrottler.d.ts","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"RepeatedActionThrottler.d.ts","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACH,iCAAiC,EAEpC,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,2BAA2B;IACpE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAK7B;IACF,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,EAEtC;IAEM,SAAS,CACZ,OAAO,EAAE,iCAAiC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GACpC,IAAI;IA4BP,OAAO,CAAC,YAAY;CAQvB"}
|
|
@@ -27,7 +27,8 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
|
|
|
27
27
|
const changeKey = this.getChangeKey(details);
|
|
28
28
|
const now = new Date().getTime();
|
|
29
29
|
if (this._lastActionSent && changeKey == this._lastActionSent) {
|
|
30
|
-
if (now - this._lastActionSentTime >=
|
|
30
|
+
if (now - this._lastActionSentTime >=
|
|
31
|
+
this._repeatInterval.milliseconds) {
|
|
31
32
|
handler(details);
|
|
32
33
|
this._lastActionSentTime = now;
|
|
33
34
|
}
|
|
@@ -45,7 +46,7 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
|
|
|
45
46
|
}
|
|
46
47
|
getChangeKey(details) {
|
|
47
48
|
switch (details.action) {
|
|
48
|
-
case
|
|
49
|
+
case "seekto":
|
|
49
50
|
return `seekto:${details.seekTime}`;
|
|
50
51
|
default:
|
|
51
52
|
return details.action;
|
|
@@ -53,5 +54,10 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
|
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
exports.RepeatedActionThrottler = RepeatedActionThrottler;
|
|
56
|
-
RepeatedActionThrottler.FILTERED_ACTIONS = [
|
|
57
|
+
RepeatedActionThrottler.FILTERED_ACTIONS = [
|
|
58
|
+
"play",
|
|
59
|
+
"pause",
|
|
60
|
+
"seekto",
|
|
61
|
+
"catchup",
|
|
62
|
+
];
|
|
57
63
|
//# sourceMappingURL=RepeatedActionThrottler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatedActionThrottler.js","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sDAAqD;AACrD,+EAA4E;
|
|
1
|
+
{"version":3,"file":"RepeatedActionThrottler.js","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sDAAqD;AACrD,+EAA4E;AAM5E;;GAEG;AACH,MAAa,uBAAwB,SAAQ,yDAA2B;IAAxE;;QAOY,oBAAe,GAAG,IAAI,yBAAY,CAAC,IAAI,CAAC,CAAC;IAmDrD,CAAC;IA/CG,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;IACzC,CAAC;IAEM,SAAS,CACZ,OAA0C,EAC1C,OAAmC;QAEnC,IAAI,OAAO,EAAE;YACT,IACI,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAC5C,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,EACR;gBACE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,eAAe,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;oBAC3D,IACI,GAAG,GAAG,IAAI,CAAC,mBAAoB;wBAC/B,IAAI,CAAC,eAAe,CAAC,YAAY,EACnC;wBACE,OAAO,CAAC,OAAoC,CAAC,CAAC;wBAC9C,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;qBAClC;iBACJ;qBAAM;oBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;oBAC9C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;oBACjC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;iBAClC;aACJ;iBAAM;gBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;aACjD;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,OAA0C;QAC3D,QAAQ,OAAO,CAAC,MAAM,EAAE;YACpB,KAAK,QAAQ;gBACT,OAAO,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxC;gBACI,OAAO,OAAO,CAAC,MAAM,CAAC;SAC7B;IACL,CAAC;;AAzDL,0DA0DC;AAzDkB,wCAAgB,GAAiC;IAC5D,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;CACZ,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
import { IMediaPlayer } from "./IMediaPlayer";
|
|
6
|
+
export declare enum LimitLevelType {
|
|
7
|
+
fixed = 0,
|
|
8
|
+
percentage = 1
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Smooth audio level changes when volume is modified, or if volume limiting has started/ended.
|
|
12
|
+
*/
|
|
13
|
+
export declare class VolumeManager {
|
|
14
|
+
private readonly _player;
|
|
15
|
+
private readonly _volumeChangeDuration;
|
|
16
|
+
private _volume;
|
|
17
|
+
private _isLimiting;
|
|
18
|
+
private _limitLevel;
|
|
19
|
+
private _limitLevelType;
|
|
20
|
+
private _startTime;
|
|
21
|
+
private _startVolume;
|
|
22
|
+
private _running;
|
|
23
|
+
constructor(player: IMediaPlayer);
|
|
24
|
+
/**
|
|
25
|
+
* The selected volume.
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* Expressed as a value between 0.0 and 1.0. The default value is 1.0.
|
|
29
|
+
* Can be used for things like volume sliders.
|
|
30
|
+
*
|
|
31
|
+
* Does not return the current volume if limiting is enabled, but the desired volume.
|
|
32
|
+
*/
|
|
33
|
+
get volume(): number;
|
|
34
|
+
set volume(value: number);
|
|
35
|
+
/**
|
|
36
|
+
* Target level to lower volume to.
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* Expressed as a value between 0.0 and 1.0. The value is applied based upon the configured
|
|
40
|
+
* `levelType`. The default value is 0.1.
|
|
41
|
+
*
|
|
42
|
+
* For a level type of `LevelType.fixed` the value is the exact level the volume will be
|
|
43
|
+
* lowered to. The default value of 0.1 would cause the volume to be lowered to 0.1.
|
|
44
|
+
*
|
|
45
|
+
* For a level type of `LevelType.percentage` the value is the percentage by which the volume
|
|
46
|
+
* level should be lowered to. The default value of 0.1 would cause the volume to be lowered
|
|
47
|
+
* to 10% of its starting value.
|
|
48
|
+
*/
|
|
49
|
+
get limitLevel(): number;
|
|
50
|
+
set limitLevel(value: number);
|
|
51
|
+
/**
|
|
52
|
+
* The type of level represented by the `limitLevel` property.
|
|
53
|
+
*/
|
|
54
|
+
get limitLevelType(): LimitLevelType;
|
|
55
|
+
set limitLevelType(value: LimitLevelType);
|
|
56
|
+
/**
|
|
57
|
+
* Amount of time, in seconds, it should take to change the volume up or down to the desired level.
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* Default `volumeChangeDuration` is 0.5 seconds.
|
|
61
|
+
*/
|
|
62
|
+
get volumeChangeDuration(): number;
|
|
63
|
+
set volumeChangeDuration(value: number);
|
|
64
|
+
/**
|
|
65
|
+
* Whether or not volume limiting is currently enabled.
|
|
66
|
+
*/
|
|
67
|
+
get isLimiting(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Limits volume based on `limitLevel` and `limitLevelType` properties.
|
|
70
|
+
* @see `limitLevel`
|
|
71
|
+
* @see `limitLevelType`
|
|
72
|
+
*/
|
|
73
|
+
startLimiting(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Disables volume limit.
|
|
76
|
+
*/
|
|
77
|
+
stopLimiting(): void;
|
|
78
|
+
private startAdjusting;
|
|
79
|
+
private scheduleAnimationFrame;
|
|
80
|
+
private computeInterpolatedVolume;
|
|
81
|
+
private computeTargetVolume;
|
|
82
|
+
private millisSinceVolumeChangeStart;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=VolumeManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VolumeManager.d.ts","sourceRoot":"","sources":["../src/VolumeManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,oBAAY,cAAc;IACtB,KAAK,IAAA;IACL,UAAU,IAAA;CACb;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAG/D,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,YAAY;IAKhC;;;;;;;;OAQG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAS9B;IAED;;;;;;;;;;;;;OAaG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,MAAM,EAQlC;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,cAAc,EAE9C;IAED;;;;;OAKG;IACH,IAAW,oBAAoB,IAAI,MAAM,CAExC;IAED,IAAW,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAE5C;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;OAIG;IACI,aAAa,IAAI,IAAI;IAK5B;;OAEG;IACI,YAAY,IAAI,IAAI;IAK3B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,4BAA4B;CAIvC"}
|