@microsoft/live-share-media 1.2.2 → 1.3.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/.nycrc.json +10 -10
- package/LICENSE +90 -90
- package/README.md +135 -135
- package/bin/LiveMediaSession.d.ts.map +1 -1
- package/bin/LiveMediaSession.js +4 -6
- package/bin/LiveMediaSession.js.map +1 -1
- package/bin/LiveMediaSessionCoordinator.d.ts +4 -3
- package/bin/LiveMediaSessionCoordinator.d.ts.map +1 -1
- package/bin/LiveMediaSessionCoordinator.js +56 -69
- package/bin/LiveMediaSessionCoordinator.js.map +1 -1
- package/bin/MediaPlayerSynchronizer.d.ts +12 -0
- package/bin/MediaPlayerSynchronizer.d.ts.map +1 -1
- package/bin/MediaPlayerSynchronizer.js +26 -6
- package/bin/MediaPlayerSynchronizer.js.map +1 -1
- package/bin/MediaSessionExtensions.d.ts +0 -4
- package/bin/MediaSessionExtensions.d.ts.map +1 -1
- package/bin/MediaSessionExtensions.js.map +1 -1
- package/bin/internals/GroupCoordinatorState.d.ts.map +1 -1
- package/bin/internals/GroupCoordinatorState.js +1 -1
- package/bin/internals/GroupCoordinatorState.js.map +1 -1
- package/bin/internals/consts.d.ts +2 -2
- package/bin/internals/consts.d.ts.map +1 -1
- package/bin/internals/consts.js +2 -2
- package/bin/internals/consts.js.map +1 -1
- package/bin/internals/errors.d.ts +17 -0
- package/bin/internals/errors.d.ts.map +1 -0
- package/bin/internals/errors.js +34 -0
- package/bin/internals/errors.js.map +1 -0
- package/bin/internals/index.d.ts +1 -0
- package/bin/internals/index.d.ts.map +1 -1
- package/bin/internals/index.js +1 -0
- package/bin/internals/index.js.map +1 -1
- package/package.json +45 -45
- package/src/IMediaPlayer.ts +29 -29
- package/src/LiveMediaSession.ts +337 -334
- package/src/LiveMediaSessionCoordinator.ts +711 -671
- package/src/LiveMediaSessionCoordinatorSuspension.ts +39 -39
- package/src/MediaPlayerSynchronizer.ts +714 -690
- package/src/MediaSessionActionThrottler.ts +19 -19
- package/src/MediaSessionExtensions.ts +182 -187
- package/src/RepeatedActionThrottler.ts +76 -76
- package/src/VolumeManager.ts +200 -200
- package/src/index.ts +14 -14
- package/src/internals/GroupCoordinatorState.ts +685 -683
- package/src/internals/GroupPlaybackPosition.ts +228 -228
- package/src/internals/GroupPlaybackTrack.ts +182 -182
- package/src/internals/GroupPlaybackTrackData.ts +104 -104
- package/src/internals/GroupTransportState.ts +170 -170
- package/src/internals/consts.ts +103 -102
- package/src/internals/errors.ts +42 -0
- package/src/internals/index.ts +12 -11
- package/tsconfig.build.json +8 -8
- package/tsconfig.json +76 -76
- package/typedoc.json +10 -10
|
@@ -49,14 +49,14 @@ export declare const TelemetryEvents: {
|
|
|
49
49
|
BeginSuspensionAndWait: string;
|
|
50
50
|
EndSuspension: string;
|
|
51
51
|
EndSuspensionAndWait: string;
|
|
52
|
-
|
|
52
|
+
RemoteConnectReceived: string;
|
|
53
53
|
RemoteSetTrackReceived: string;
|
|
54
54
|
RemoteSetTrackDataReceived: string;
|
|
55
55
|
RemotePlayReceived: string;
|
|
56
56
|
RemotePauseReceived: string;
|
|
57
57
|
RemoteSeekToReceived: string;
|
|
58
58
|
PositionUpdateEventError: string;
|
|
59
|
-
|
|
59
|
+
LiveObjectSynchronizerStartError: string;
|
|
60
60
|
};
|
|
61
61
|
GroupCoordinator: {
|
|
62
62
|
TrackChanged: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/internals/consts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/internals/consts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqF3B,CAAC"}
|
package/bin/internals/consts.js
CHANGED
|
@@ -52,14 +52,14 @@ exports.TelemetryEvents = {
|
|
|
52
52
|
BeginSuspensionAndWait: transmit("SessionCoordinator:BeginSuspensionAndWait"),
|
|
53
53
|
EndSuspension: "SessionCoordinator:EndSuspension",
|
|
54
54
|
EndSuspensionAndWait: transmit("SessionCoordinator:EndSuspensionAndWait"),
|
|
55
|
-
|
|
55
|
+
RemoteConnectReceived: "SessionCoordinator:RemoteConnectReceived",
|
|
56
56
|
RemoteSetTrackReceived: transmit("SessionCoordinator:RemoteSetTrackReceived"),
|
|
57
57
|
RemoteSetTrackDataReceived: transmit("SessionCoordinator:RemoteSetTrackDataReceived"),
|
|
58
58
|
RemotePlayReceived: transmit("SessionCoordinator:RemotePlayReceived"),
|
|
59
59
|
RemotePauseReceived: transmit("SessionCoordinator:RemotePauseReceived"),
|
|
60
60
|
RemoteSeekToReceived: transmit("SessionCoordinator:RemoteSeekToReceived"),
|
|
61
61
|
PositionUpdateEventError: "SessionCoordinator:PositionUpdateEventError",
|
|
62
|
-
|
|
62
|
+
LiveObjectSynchronizerStartError: "SessionCoordinator:LiveObjectSynchronizerStartError",
|
|
63
63
|
},
|
|
64
64
|
GroupCoordinator: {
|
|
65
65
|
TrackChanged: "GroupCoordinator:TrackChanged",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/internals/consts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC3B,uBAAuB,EAAE;QACrB,sBAAsB,EAClB,gDAAgD;QACpD,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE,oCAAoC;QAChD,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE,sCAAsC;QACpD,aAAa,EAAE,uCAAuC;QACtD,cAAc,EAAE,wCAAwC;QACxD,gBAAgB,EAAE,0CAA0C;QAC5D,qBAAqB,EAAE,QAAQ,CAC3B,+CAA+C,CAClD;QACD,0BAA0B,EACtB,oDAAoD;QACxD,yBAAyB,EACrB,mDAAmD;QACvD,sBAAsB,EAAE,QAAQ,CAC5B,gDAAgD,CACnD;QACD,4BAA4B,EACxB,sDAAsD;QAC1D,eAAe,EAAE,yCAAyC;QAC1D,aAAa,EAAE,uCAAuC;QACtD,UAAU,EAAE,oCAAoC;QAChD,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE,sCAAsC;QACpD,cAAc,EAAE,wCAAwC;QACxD,kBAAkB,EAAE,4CAA4C;KACnE;IACD,YAAY,EAAE;QACV,UAAU,EAAE,QAAQ,CAAC,yBAAyB,CAAC;QAC/C,WAAW,EAAE,QAAQ,CAAC,0BAA0B,CAAC;QACjD,YAAY,EAAE,QAAQ,CAAC,2BAA2B,CAAC;QACnD,aAAa,EAAE,QAAQ,CAAC,4BAA4B,CAAC;QACrD,cAAc,EAAE,QAAQ,CAAC,6BAA6B,CAAC;QACvD,gBAAgB,EAAE,+BAA+B;QACjD,wBAAwB,EAAE,uCAAuC;KACpE;IACD,kBAAkB,EAAE;QAChB,UAAU,EAAE,QAAQ,CAAC,+BAA+B,CAAC;QACrD,WAAW,EAAE,QAAQ,CAAC,gCAAgC,CAAC;QACvD,YAAY,EAAE,QAAQ,CAAC,iCAAiC,CAAC;QACzD,cAAc,EAAE,QAAQ,CAAC,mCAAmC,CAAC;QAC7D,kBAAkB,EAAE,uCAAuC;QAC3D,eAAe,EAAE,oCAAoC;QACrD,sBAAsB,EAAE,QAAQ,CAC5B,2CAA2C,CAC9C;QACD,aAAa,EAAE,kCAAkC;QACjD,oBAAoB,EAAE,QAAQ,CAC1B,yCAAyC,CAC5C;QACD,
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/internals/consts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC3B,uBAAuB,EAAE;QACrB,sBAAsB,EAClB,gDAAgD;QACpD,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE,oCAAoC;QAChD,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE,sCAAsC;QACpD,aAAa,EAAE,uCAAuC;QACtD,cAAc,EAAE,wCAAwC;QACxD,gBAAgB,EAAE,0CAA0C;QAC5D,qBAAqB,EAAE,QAAQ,CAC3B,+CAA+C,CAClD;QACD,0BAA0B,EACtB,oDAAoD;QACxD,yBAAyB,EACrB,mDAAmD;QACvD,sBAAsB,EAAE,QAAQ,CAC5B,gDAAgD,CACnD;QACD,4BAA4B,EACxB,sDAAsD;QAC1D,eAAe,EAAE,yCAAyC;QAC1D,aAAa,EAAE,uCAAuC;QACtD,UAAU,EAAE,oCAAoC;QAChD,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE,sCAAsC;QACpD,cAAc,EAAE,wCAAwC;QACxD,kBAAkB,EAAE,4CAA4C;KACnE;IACD,YAAY,EAAE;QACV,UAAU,EAAE,QAAQ,CAAC,yBAAyB,CAAC;QAC/C,WAAW,EAAE,QAAQ,CAAC,0BAA0B,CAAC;QACjD,YAAY,EAAE,QAAQ,CAAC,2BAA2B,CAAC;QACnD,aAAa,EAAE,QAAQ,CAAC,4BAA4B,CAAC;QACrD,cAAc,EAAE,QAAQ,CAAC,6BAA6B,CAAC;QACvD,gBAAgB,EAAE,+BAA+B;QACjD,wBAAwB,EAAE,uCAAuC;KACpE;IACD,kBAAkB,EAAE;QAChB,UAAU,EAAE,QAAQ,CAAC,+BAA+B,CAAC;QACrD,WAAW,EAAE,QAAQ,CAAC,gCAAgC,CAAC;QACvD,YAAY,EAAE,QAAQ,CAAC,iCAAiC,CAAC;QACzD,cAAc,EAAE,QAAQ,CAAC,mCAAmC,CAAC;QAC7D,kBAAkB,EAAE,uCAAuC;QAC3D,eAAe,EAAE,oCAAoC;QACrD,sBAAsB,EAAE,QAAQ,CAC5B,2CAA2C,CAC9C;QACD,aAAa,EAAE,kCAAkC;QACjD,oBAAoB,EAAE,QAAQ,CAC1B,yCAAyC,CAC5C;QACD,qBAAqB,EAAE,0CAA0C;QACjE,sBAAsB,EAAE,QAAQ,CAC5B,2CAA2C,CAC9C;QACD,0BAA0B,EAAE,QAAQ,CAChC,+CAA+C,CAClD;QACD,kBAAkB,EAAE,QAAQ,CAAC,uCAAuC,CAAC;QACrE,mBAAmB,EAAE,QAAQ,CAAC,wCAAwC,CAAC;QACvE,oBAAoB,EAAE,QAAQ,CAC1B,yCAAyC,CAC5C;QACD,wBAAwB,EAAE,6CAA6C;QACvE,gCAAgC,EAC5B,qDAAqD;KAC5D;IACD,gBAAgB,EAAE;QACd,YAAY,EAAE,+BAA+B;QAC7C,kBAAkB,EAAE,qCAAqC;QACzD,gBAAgB,EAAE,mCAAmC;QACrD,sBAAsB,EAAE,yCAAyC;QACjE,qBAAqB,EAAE,wCAAwC;QAC/D,2BAA2B,EACvB,8CAA8C;QAClD,mBAAmB,EAAE,sCAAsC;QAC3D,qBAAqB,EAAE,wCAAwC;QAC/D,cAAc,EAAE,QAAQ,CAAC,iCAAiC,CAAC;QAC3D,kBAAkB,EAAE,QAAQ,CAAC,qCAAqC,CAAC;QACnE,kBAAkB,EAAE,QAAQ,CAAC,qCAAqC,CAAC;QACnE,iBAAiB,EAAE,QAAQ,CAAC,oCAAoC,CAAC;KACpE;CACJ,CAAC;AAEF;;GAEG;AACH,SAAS,QAAQ,CAAC,SAAiB;IAC/B,OAAO,GAAG,SAAS,WAAW,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
* Use for operations that are blocked due to the metadata not being set.
|
|
4
|
+
*/
|
|
5
|
+
export declare class TrackMetadataNotSetError extends Error {
|
|
6
|
+
constructor(prefix: string, callingFunction: string);
|
|
7
|
+
static assert(condition: boolean, prefix: string, callingFunction: string): asserts condition;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
* Use for operations that are blocked due to the metadata not being set.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ActionBlockedError extends Error {
|
|
14
|
+
constructor(prefix: string, callingFunction: string, settingName: string);
|
|
15
|
+
static assert(condition: boolean, prefix: string, callingFunction: string, settingName: string): asserts condition;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/internals/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACnC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAMnD,MAAM,CAAC,MAAM,CACT,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACxB,OAAO,CAAC,SAAS;CAIvB;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC7B,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMxE,MAAM,CAAC,MAAM,CACT,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,SAAS;CAIvB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActionBlockedError = exports.TrackMetadataNotSetError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @hidden
|
|
6
|
+
* Use for operations that are blocked due to the metadata not being set.
|
|
7
|
+
*/
|
|
8
|
+
class TrackMetadataNotSetError extends Error {
|
|
9
|
+
constructor(prefix, callingFunction) {
|
|
10
|
+
super(`${prefix} - called before playback track metadata has been assigned.\nTo fix this error, ensure \`setTrack()\` has been called with the track information before calling \`${callingFunction}()\``);
|
|
11
|
+
}
|
|
12
|
+
static assert(condition, prefix, callingFunction) {
|
|
13
|
+
if (condition)
|
|
14
|
+
return;
|
|
15
|
+
throw new TrackMetadataNotSetError(prefix, callingFunction);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.TrackMetadataNotSetError = TrackMetadataNotSetError;
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
* Use for operations that are blocked due to the metadata not being set.
|
|
22
|
+
*/
|
|
23
|
+
class ActionBlockedError extends Error {
|
|
24
|
+
constructor(prefix, callingFunction, settingName) {
|
|
25
|
+
super(`${prefix} - operation blocked due to \`${settingName}\` being set to false.\nTo fix this error, ensure \`${settingName}\` is true before calling \`${callingFunction}()\`, or set \`${settingName}\` to true. If you are using \`MediaPlayerSynchronizer\`, you can instead use the \`viewOnly\`, which when set to false, it will set \`${settingName}\` value to true.`);
|
|
26
|
+
}
|
|
27
|
+
static assert(condition, prefix, callingFunction, settingName) {
|
|
28
|
+
if (condition)
|
|
29
|
+
return;
|
|
30
|
+
throw new ActionBlockedError(prefix, callingFunction, settingName);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.ActionBlockedError = ActionBlockedError;
|
|
34
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/internals/errors.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,wBAAyB,SAAQ,KAAK;IAC/C,YAAY,MAAc,EAAE,eAAuB;QAC/C,KAAK,CACD,GAAG,MAAM,sKAAsK,eAAe,MAAM,CACvM,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM,CACT,SAAkB,EAClB,MAAc,EACd,eAAuB;QAEvB,IAAI,SAAS;YAAE,OAAO;QACtB,MAAM,IAAI,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;CACJ;AAfD,4DAeC;AAED;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IACzC,YAAY,MAAc,EAAE,eAAuB,EAAE,WAAmB;QACpE,KAAK,CACD,GAAG,MAAM,iCAAiC,WAAW,uDAAuD,WAAW,+BAA+B,eAAe,kBAAkB,WAAW,0IAA0I,WAAW,mBAAmB,CAC7W,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM,CACT,SAAkB,EAClB,MAAc,EACd,eAAuB,EACvB,WAAmB;QAEnB,IAAI,SAAS;YAAE,OAAO;QACtB,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;CACJ;AAhBD,gDAgBC"}
|
package/bin/internals/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC"}
|
package/bin/internals/index.js
CHANGED
|
@@ -24,4 +24,5 @@ __exportStar(require("./GroupPlaybackPosition"), exports);
|
|
|
24
24
|
__exportStar(require("./GroupPlaybackTrack"), exports);
|
|
25
25
|
__exportStar(require("./GroupPlaybackTrackData"), exports);
|
|
26
26
|
__exportStar(require("./GroupTransportState"), exports);
|
|
27
|
+
__exportStar(require("./errors"), exports);
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,0DAAwC;AACxC,0DAAwC;AACxC,uDAAqC;AACrC,2DAAyC;AACzC,wDAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,0DAAwC;AACxC,0DAAwC;AACxC,uDAAqC;AACrC,2DAAyC;AACzC,wDAAsC;AACtC,2CAAyB"}
|
package/package.json
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@microsoft/live-share-media",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Live Share classes that synchronize media playback across clients.",
|
|
5
|
-
"author": "Microsoft",
|
|
6
|
-
"license": "SEE LICENSE IN LICENSE",
|
|
7
|
-
"main": "./bin/index.js",
|
|
8
|
-
"types": "./bin/index.d.ts",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"clean": "npx shx rm -rf bin",
|
|
11
|
-
"build": "tsc -p tsconfig.build.json",
|
|
12
|
-
"test": "ts-mocha --config ./src/test/.mocharc.js src/**/*.spec.ts --timeout 10000",
|
|
13
|
-
"test:debug": "ts-mocha --config ./src/test/.mocharc.js src/**/*.spec.ts --inspect-brk",
|
|
14
|
-
"test:coverage": "nyc --reporter=html --reporter=text --reporter=text-summary npm test",
|
|
15
|
-
"test:race": "node ./../live-share/test-for-race-conditions.js"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@microsoft/live-share": "1.
|
|
19
|
-
"@fluidframework/test-client-utils": "^1.3.6",
|
|
20
|
-
"@fluidframework/test-runtime-utils": "^1.3.6",
|
|
21
|
-
"@fluidframework/test-utils": "^1.3.6",
|
|
22
|
-
"@fluidframework/test-version-utils": "^1.3.6",
|
|
23
|
-
"@types/assert": "^1.5.6",
|
|
24
|
-
"@types/mocha": "^10.0.1",
|
|
25
|
-
"@types/node": "^20.2.3",
|
|
26
|
-
"fluid-framework": "^1.3.6",
|
|
27
|
-
"mocha": "^10.2.0",
|
|
28
|
-
"nyc": "^15.1.0",
|
|
29
|
-
"ts-mocha": "^10.0.0",
|
|
30
|
-
"typescript": "^5.0.4"
|
|
31
|
-
},
|
|
32
|
-
"peerDependencies": {
|
|
33
|
-
"@microsoft/live-share": "1.
|
|
34
|
-
"fluid-framework": "^1.2.3"
|
|
35
|
-
},
|
|
36
|
-
"repository": {
|
|
37
|
-
"directory": "packages/live-share-media",
|
|
38
|
-
"type": "git",
|
|
39
|
-
"url": "https://github.com/microsoft/live-share-sdk"
|
|
40
|
-
},
|
|
41
|
-
"homepage": "https://aka.ms/teamsliveshare",
|
|
42
|
-
"bugs": {
|
|
43
|
-
"url": "https://github.com/microsoft/live-share-sdk/issues"
|
|
44
|
-
}
|
|
45
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@microsoft/live-share-media",
|
|
3
|
+
"version": "1.3.1",
|
|
4
|
+
"description": "Live Share classes that synchronize media playback across clients.",
|
|
5
|
+
"author": "Microsoft",
|
|
6
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
7
|
+
"main": "./bin/index.js",
|
|
8
|
+
"types": "./bin/index.d.ts",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"clean": "npx shx rm -rf bin",
|
|
11
|
+
"build": "tsc -p tsconfig.build.json",
|
|
12
|
+
"test": "ts-mocha --config ./src/test/.mocharc.js src/**/*.spec.ts --timeout 10000",
|
|
13
|
+
"test:debug": "ts-mocha --config ./src/test/.mocharc.js src/**/*.spec.ts --inspect-brk",
|
|
14
|
+
"test:coverage": "nyc --reporter=html --reporter=text --reporter=text-summary npm test",
|
|
15
|
+
"test:race": "node ./../live-share/test-for-race-conditions.js"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@microsoft/live-share": "1.3.1",
|
|
19
|
+
"@fluidframework/test-client-utils": "^1.3.6",
|
|
20
|
+
"@fluidframework/test-runtime-utils": "^1.3.6",
|
|
21
|
+
"@fluidframework/test-utils": "^1.3.6",
|
|
22
|
+
"@fluidframework/test-version-utils": "^1.3.6",
|
|
23
|
+
"@types/assert": "^1.5.6",
|
|
24
|
+
"@types/mocha": "^10.0.1",
|
|
25
|
+
"@types/node": "^20.2.3",
|
|
26
|
+
"fluid-framework": "^1.3.6",
|
|
27
|
+
"mocha": "^10.2.0",
|
|
28
|
+
"nyc": "^15.1.0",
|
|
29
|
+
"ts-mocha": "^10.0.0",
|
|
30
|
+
"typescript": "^5.0.4"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"@microsoft/live-share": "1.3.1",
|
|
34
|
+
"fluid-framework": "^1.2.3"
|
|
35
|
+
},
|
|
36
|
+
"repository": {
|
|
37
|
+
"directory": "packages/live-share-media",
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "https://github.com/microsoft/live-share-sdk"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://aka.ms/teamsliveshare",
|
|
42
|
+
"bugs": {
|
|
43
|
+
"url": "https://github.com/microsoft/live-share-sdk/issues"
|
|
44
|
+
}
|
|
45
|
+
}
|
package/src/IMediaPlayer.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface IMediaPlayer {
|
|
7
|
-
readonly currentSrc: string;
|
|
8
|
-
currentTime: number;
|
|
9
|
-
readonly duration: number;
|
|
10
|
-
readonly ended: boolean;
|
|
11
|
-
muted: boolean;
|
|
12
|
-
readonly paused: boolean;
|
|
13
|
-
playbackRate: number;
|
|
14
|
-
src: string;
|
|
15
|
-
volume: number;
|
|
16
|
-
load(): void;
|
|
17
|
-
pause(): void;
|
|
18
|
-
play(): Promise<void>;
|
|
19
|
-
addEventListener(
|
|
20
|
-
type: string,
|
|
21
|
-
listener: EventListenerOrEventListenerObject,
|
|
22
|
-
options?: boolean | AddEventListenerOptions
|
|
23
|
-
): void;
|
|
24
|
-
removeEventListener(
|
|
25
|
-
type: string,
|
|
26
|
-
listener: EventListenerOrEventListenerObject,
|
|
27
|
-
options?: boolean | EventListenerOptions
|
|
28
|
-
): void;
|
|
29
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface IMediaPlayer {
|
|
7
|
+
readonly currentSrc: string;
|
|
8
|
+
currentTime: number;
|
|
9
|
+
readonly duration: number;
|
|
10
|
+
readonly ended: boolean;
|
|
11
|
+
muted: boolean;
|
|
12
|
+
readonly paused: boolean;
|
|
13
|
+
playbackRate: number;
|
|
14
|
+
src: string;
|
|
15
|
+
volume: number;
|
|
16
|
+
load(): void;
|
|
17
|
+
pause(): void;
|
|
18
|
+
play(): Promise<void>;
|
|
19
|
+
addEventListener(
|
|
20
|
+
type: string,
|
|
21
|
+
listener: EventListenerOrEventListenerObject,
|
|
22
|
+
options?: boolean | AddEventListenerOptions
|
|
23
|
+
): void;
|
|
24
|
+
removeEventListener(
|
|
25
|
+
type: string,
|
|
26
|
+
listener: EventListenerOrEventListenerObject,
|
|
27
|
+
options?: boolean | EventListenerOptions
|
|
28
|
+
): void;
|
|
29
|
+
}
|