@microsoft/live-share-media 0.1.2 → 0.2.0

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.
Files changed (65) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/LICENSE +87 -0
  3. package/README.md +108 -92
  4. package/bin/EphemeralMediaSession.d.ts +51 -4
  5. package/bin/EphemeralMediaSession.d.ts.map +1 -1
  6. package/bin/EphemeralMediaSession.js +91 -44
  7. package/bin/EphemeralMediaSession.js.map +1 -1
  8. package/bin/EphemeralMediaSessionCoordinator.d.ts +173 -6
  9. package/bin/EphemeralMediaSessionCoordinator.d.ts.map +1 -1
  10. package/bin/EphemeralMediaSessionCoordinator.js +170 -23
  11. package/bin/EphemeralMediaSessionCoordinator.js.map +1 -1
  12. package/bin/EphemeralMediaSessionCoordinatorSuspension.d.ts +1 -1
  13. package/bin/EphemeralMediaSessionCoordinatorSuspension.js +1 -1
  14. package/bin/IMediaPlayer.d.ts +1 -1
  15. package/bin/IMediaPlayer.js +1 -1
  16. package/bin/MediaPlayerSynchronizer.d.ts +95 -6
  17. package/bin/MediaPlayerSynchronizer.d.ts.map +1 -1
  18. package/bin/MediaPlayerSynchronizer.js +93 -31
  19. package/bin/MediaPlayerSynchronizer.js.map +1 -1
  20. package/bin/MediaSessionActionThrottler.d.ts +1 -1
  21. package/bin/MediaSessionActionThrottler.js +1 -1
  22. package/bin/MediaSessionExtensions.d.ts +1 -1
  23. package/bin/MediaSessionExtensions.js +1 -1
  24. package/bin/RepeatedActionThrottler.d.ts +1 -1
  25. package/bin/RepeatedActionThrottler.js +1 -1
  26. package/bin/VolumeLimiter.d.ts +2 -2
  27. package/bin/VolumeLimiter.js +2 -2
  28. package/bin/index.d.ts +1 -1
  29. package/bin/index.js +1 -1
  30. package/bin/internals/GroupCoordinatorState.d.ts +1 -1
  31. package/bin/internals/GroupCoordinatorState.js +1 -1
  32. package/bin/internals/GroupPlaybackPosition.d.ts +1 -1
  33. package/bin/internals/GroupPlaybackPosition.js +1 -1
  34. package/bin/internals/GroupPlaybackTrack.d.ts +1 -1
  35. package/bin/internals/GroupPlaybackTrack.js +1 -1
  36. package/bin/internals/GroupPlaybackTrackData.d.ts +1 -1
  37. package/bin/internals/GroupPlaybackTrackData.js +1 -1
  38. package/bin/internals/GroupTransportState.d.ts +1 -1
  39. package/bin/internals/GroupTransportState.js +1 -1
  40. package/bin/internals/consts.d.ts +1 -1
  41. package/bin/internals/consts.js +1 -1
  42. package/bin/internals/index.d.ts +1 -1
  43. package/bin/internals/index.js +1 -1
  44. package/package.json +13 -4
  45. package/src/EphemeralMediaSession.ts +95 -48
  46. package/src/EphemeralMediaSessionCoordinator.ts +190 -26
  47. package/src/EphemeralMediaSessionCoordinatorSuspension.ts +1 -1
  48. package/src/IMediaPlayer.ts +1 -1
  49. package/src/MediaPlayerSynchronizer.ts +101 -33
  50. package/src/MediaSessionActionThrottler.ts +1 -1
  51. package/src/MediaSessionExtensions.ts +1 -1
  52. package/src/RepeatedActionThrottler.ts +1 -1
  53. package/src/VolumeLimiter.ts +2 -2
  54. package/src/index.ts +1 -1
  55. package/src/internals/GroupCoordinatorState.ts +1 -1
  56. package/src/internals/GroupPlaybackPosition.ts +1 -1
  57. package/src/internals/GroupPlaybackTrack.ts +1 -1
  58. package/src/internals/GroupPlaybackTrackData.ts +1 -1
  59. package/src/internals/GroupTransportState.ts +1 -1
  60. package/src/internals/consts.ts +1 -1
  61. package/src/internals/index.ts +1 -1
  62. package/src/test/GroupPlaybackPosition.spec.ts +1 -1
  63. package/src/test/GroupPlaybackTrack.spec.ts +1 -1
  64. package/src/test/SharedMediaSession.spec.ts +1 -1
  65. package/src/test/SharedMediaSessionCoordinator.spec.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  /// <reference types="node" />
6
6
  import { IEvent } from '@microsoft/live-share';
@@ -9,10 +9,22 @@ import { ExtendedMediaMetadata, CoordinationWaitPoint, ExtendedMediaSessionActio
9
9
  import { EphemeralMediaSession } from './EphemeralMediaSession';
10
10
  import { VolumeLimiter } from './VolumeLimiter';
11
11
  import { IMediaPlayer } from './IMediaPlayer';
12
+ /**
13
+ * Event data returned by `MediaPlayerSynchronizer` object.
14
+ */
12
15
  export interface IMediaPlayerSynchronizerEvent extends IEvent {
16
+ /**
17
+ * Event details.
18
+ */
13
19
  details: ExtendedMediaSessionActionDetails;
14
20
  }
21
+ /**
22
+ * Events supported by `MediaPlayerSynchronizer` object.
23
+ */
15
24
  export declare enum MediaPlayerSynchronizerEvents {
25
+ /**
26
+ *
27
+ */
16
28
  coordinatorstatechange = "coordinatorstatechange",
17
29
  groupaction = "groupaction",
18
30
  useraction = "useraction"
@@ -35,7 +47,6 @@ export declare class MediaPlayerSynchronizer extends EventEmitter {
35
47
  private _volumeLimiter;
36
48
  private _onEnd?;
37
49
  private _onPlayerEvent;
38
- private _catchupFastSeekPeriod;
39
50
  private _seekSuspension?;
40
51
  private _viewOnly;
41
52
  private _expectedPlaybackState;
@@ -47,22 +58,100 @@ export declare class MediaPlayerSynchronizer extends EventEmitter {
47
58
  * @param onEnd Optional. Function to call when synchronizers `end()` method is called.
48
59
  */
49
60
  constructor(player: IMediaPlayer, mediaSession: EphemeralMediaSession, onEnd: () => void);
50
- get catchupFastSeekPeriod(): number;
51
- set catchupFastSeekPeriod(value: number);
61
+ /**
62
+ * Media player being synchronized.
63
+ */
52
64
  get player(): IMediaPlayer;
65
+ /**
66
+ * Synchronizers media session.
67
+ */
53
68
  get mediaSession(): EphemeralMediaSession;
69
+ /**
70
+ * If true the client is in a view only mode.
71
+ *
72
+ * @remarks
73
+ * Toggling this value to true results in `mediaSession.coordinator.canPlayPause`,
74
+ * `mediaSession.coordinator.canSeek`, `mediaSession.coordinator.canSetTrack`, and
75
+ * `mediaSession.coordinator.canSetTrackData` all being set to false. For more fine
76
+ * grained control over the local clients policies, call the `mediaSession.coordinator`
77
+ * directly.
78
+ */
54
79
  get viewOnly(): boolean;
55
80
  set viewOnly(value: boolean);
81
+ /**
82
+ * Volume limiter used to temporarily reduce the videos volume when someone speaks in a meeting.
83
+ */
56
84
  get volumeLimiter(): VolumeLimiter;
57
- addEventListener(event: MediaPlayerSynchronizerEvents, listener: () => void): this;
58
- removeEventListener(event: MediaPlayerSynchronizerEvents, listener: () => void): this;
85
+ /**
86
+ * Registers a new event listener.
87
+ * @param event Name of the event to add.
88
+ * @param listener Function to call when the event is triggered.
89
+ */
90
+ addEventListener(event: MediaPlayerSynchronizerEvents, listener: (evt: IMediaPlayerSynchronizerEvent) => void): this;
91
+ /**
92
+ * Un-registers an existing event listener.
93
+ * @param event Name of the event to remove.
94
+ * @param listener Function that was registered in call to `addEventListener()`.
95
+ */
96
+ removeEventListener(event: MediaPlayerSynchronizerEvents, listener: (evt: IMediaPlayerSynchronizerEvent) => void): this;
97
+ /**
98
+ * Ends synchronization of the current media player.
99
+ */
59
100
  end(): void;
101
+ /**
102
+ * Begin a local seek operation.
103
+ *
104
+ * @remarks
105
+ * UI can call this when a user grabs a timeline scrubber and starts scrubbing the video to a
106
+ * new playback position. The synchronizer will being a new suspension which temporarily
107
+ * disconnects the client for the rest of the group for synchronization purposes. Calling
108
+ * `endSeek()` will end the suspension and seek the group to the users final seek position.
109
+ */
60
110
  beginSeek(): void;
111
+ /**
112
+ * Ends a seek operation that was started by calling `beginSeek()`.
113
+ * @param seekTo Playback position in seconds to seek the group to.
114
+ */
61
115
  endSeek(seekTo: number): void;
116
+ /**
117
+ * Tells the group to begin playing the current video.
118
+ *
119
+ * @remarks
120
+ * For proper operation apps should avoid calling `mediaSession.coordinator.play()` directly
121
+ * and instead use the synchronizers `play()` method.
122
+ */
62
123
  play(): void;
124
+ /**
125
+ * Tells the group to pause the current video.
126
+ *
127
+ * @remarks
128
+ * For proper operation apps should avoid calling `mediaSession.coordinator.pause()` directly
129
+ * and instead use the synchronizers `pause()` method.
130
+ */
63
131
  pause(): void;
132
+ /**
133
+ * Tells the group to seek the current video to a new playback position.
134
+ *
135
+ * @remarks
136
+ * For proper operation apps should avoid calling `mediaSession.coordinator.seekTo()` directly
137
+ * and instead use the synchronizers `seekTo()` method.
138
+ */
64
139
  seekTo(time: number): void;
140
+ /**
141
+ * Tells the group to change to a new track.
142
+ *
143
+ * @remarks
144
+ * For proper operation apps should avoid calling `mediaSession.coordinator.setTrack()` directly
145
+ * and instead use the synchronizers `setTrack()` method.
146
+ */
65
147
  setTrack(track: ExtendedMediaMetadata, waitPoints?: CoordinationWaitPoint[]): void;
148
+ /**
149
+ * Updates the current tracks data object.
150
+ *
151
+ * @remarks
152
+ * For proper operation apps should avoid calling `mediaSession.coordinator.setTrackData()` directly
153
+ * and instead use the synchronizers `setTrackData()` method.
154
+ */
66
155
  setTrackData(data: object | null): void;
67
156
  private dispatchGroupAction;
68
157
  private dispatchUserAction;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPlayerSynchronizer.d.ts","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAA4B,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAiE,qBAAqB,EAAE,qBAAqB,EAAE,iCAAiC,EAAoE,MAAM,0BAA0B,CAAC;AAC5P,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,WAAW,6BAA8B,SAAQ,MAAM;IACzD,OAAO,EAAE,iCAAiC,CAAC;CAC9C;AAED,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACrD,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0G;IACxI,OAAO,CAAC,MAAM,CAAC,aAAa,CAAoG;IAEhI,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,sBAAsB,CAAqC;IACnE,OAAO,CAAC,eAAe,CAAC,CAAoC;IAC5D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,sBAAsB,CAA6C;IAC3E,OAAO,CAAC,UAAU,CAAqB;IAEvC;;;;;OAKG;gBACS,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,IAAI;IAqIxF,IAAW,qBAAqB,IAAI,MAAM,CAEzC;IAED,IAAW,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAE7C;IAED,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED,IAAW,YAAY,IAAI,qBAAqB,CAE/C;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAIjC;IAED,IAAW,aAAa,IAAI,aAAa,CAExC;IAEM,gBAAgB,CAAC,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKlF,mBAAmB,CAAC,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKrF,GAAG,IAAI,IAAI;IAqBX,SAAS,IAAI,IAAI;IASjB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmB7B,IAAI,IAAI,IAAI;IAQZ,KAAK,IAAI,IAAI;IAQb,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY1B,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAOlF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAC,IAAI,GAAG,IAAI;IAQ5C,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;YAQZ,aAAa;CAoB9B"}
1
+ {"version":3,"file":"MediaPlayerSynchronizer.d.ts","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAA4B,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAiE,qBAAqB,EAAE,qBAAqB,EAAE,iCAAiC,EAAoE,MAAM,0BAA0B,CAAC;AAC5P,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,MAAM;IACzD;;OAEG;IACH,OAAO,EAAE,iCAAiC,CAAC;CAC9C;AAED;;GAEG;AACH,oBAAY,6BAA6B;IACrC;;OAEG;IACH,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACrD,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0G;IACxI,OAAO,CAAC,MAAM,CAAC,aAAa,CAAoG;IAEhI,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAoC;IAC5D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,sBAAsB,CAA6C;IAC3E,OAAO,CAAC,UAAU,CAAqB;IAEvC;;;;;OAKG;gBACS,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,IAAI;IAqIxF;;OAEG;IACH,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,qBAAqB,CAE/C;IAED;;;;;;;;;OASG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAMjC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,aAAa,CAExC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,6BAA6B,KAAK,IAAI,GAAG,IAAI;IAK3H;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,6BAA6B,KAAK,IAAI,GAAG,IAAI;IAK9H;;OAEG;IACI,GAAG,IAAI,IAAI;IAqBlB;;;;;;;;OAQG;IACI,SAAS,IAAI,IAAI;IASxB;;;OAGG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBpC;;;;;;OAMG;IACI,IAAI,IAAI,IAAI;IAQnB;;;;;;OAMG;IACI,KAAK,IAAI,IAAI;IAQpB;;;;;;OAMG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAYjC;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAOzF;;;;;;OAMG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,GAAC,IAAI,GAAG,IAAI;IAQ5C,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;YAQZ,aAAa;CAG9B"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
7
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -17,13 +17,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.MediaPlayerSynchronizer = exports.MediaPlayerSynchronizerEvents = void 0;
20
- const live_share_1 = require("@microsoft/live-share");
21
20
  const events_1 = __importDefault(require("events"));
22
21
  const MediaSessionExtensions_1 = require("./MediaSessionExtensions");
23
22
  const VolumeLimiter_1 = require("./VolumeLimiter");
24
23
  const internals_1 = require("./internals");
24
+ /**
25
+ * Events supported by `MediaPlayerSynchronizer` object.
26
+ */
25
27
  var MediaPlayerSynchronizerEvents;
26
28
  (function (MediaPlayerSynchronizerEvents) {
29
+ /**
30
+ *
31
+ */
27
32
  MediaPlayerSynchronizerEvents["coordinatorstatechange"] = "coordinatorstatechange";
28
33
  MediaPlayerSynchronizerEvents["groupaction"] = "groupaction";
29
34
  MediaPlayerSynchronizerEvents["useraction"] = "useraction";
@@ -46,7 +51,6 @@ class MediaPlayerSynchronizer extends events_1.default {
46
51
  */
47
52
  constructor(player, mediaSession, onEnd) {
48
53
  super();
49
- this._catchupFastSeekPeriod = new live_share_1.TimeInterval(0);
50
54
  this._viewOnly = false;
51
55
  this._expectedPlaybackState = 'none';
52
56
  this._trackData = null;
@@ -56,7 +60,7 @@ class MediaPlayerSynchronizer extends events_1.default {
56
60
  this._volumeLimiter = new VolumeLimiter_1.VolumeLimiter(player);
57
61
  this._onEnd = onEnd;
58
62
  // Listen for player state requests
59
- mediaSession.onRequestPlayerState = () => {
63
+ mediaSession.setRequestPlayerStateHandler(() => {
60
64
  // Find playback state
61
65
  let playbackState;
62
66
  const src = this._player.currentSrc || this._player.src;
@@ -83,7 +87,7 @@ class MediaPlayerSynchronizer extends events_1.default {
83
87
  trackData: this._trackData
84
88
  };
85
89
  return state;
86
- };
90
+ });
87
91
  // Listen for player events
88
92
  this._onPlayerEvent = (evt) => {
89
93
  if (evt.type != 'timeupdate') {
@@ -98,7 +102,7 @@ class MediaPlayerSynchronizer extends events_1.default {
98
102
  // Handle case for YouTube player where user can pause/play video by clicking on it.
99
103
  // - Videos don't always start at 0.0 seconds.
100
104
  if (this._expectedPlaybackState != 'playing') {
101
- if (!this._viewOnly && this._player.currentTime < 1.0) {
105
+ if (this._mediaSession.coordinator.canPlayPause && this._player.currentTime < 1.0) {
102
106
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.UserTappedVideoToPlay);
103
107
  this.play();
104
108
  }
@@ -173,18 +177,28 @@ class MediaPlayerSynchronizer extends events_1.default {
173
177
  }
174
178
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SynchronizationStarted);
175
179
  }
176
- get catchupFastSeekPeriod() {
177
- return this._catchupFastSeekPeriod.seconds;
178
- }
179
- set catchupFastSeekPeriod(value) {
180
- this._catchupFastSeekPeriod.seconds = value;
181
- }
180
+ /**
181
+ * Media player being synchronized.
182
+ */
182
183
  get player() {
183
184
  return this._player;
184
185
  }
186
+ /**
187
+ * Synchronizers media session.
188
+ */
185
189
  get mediaSession() {
186
190
  return this._mediaSession;
187
191
  }
192
+ /**
193
+ * If true the client is in a view only mode.
194
+ *
195
+ * @remarks
196
+ * Toggling this value to true results in `mediaSession.coordinator.canPlayPause`,
197
+ * `mediaSession.coordinator.canSeek`, `mediaSession.coordinator.canSetTrack`, and
198
+ * `mediaSession.coordinator.canSetTrackData` all being set to false. For more fine
199
+ * grained control over the local clients policies, call the `mediaSession.coordinator`
200
+ * directly.
201
+ */
188
202
  get viewOnly() {
189
203
  return this._viewOnly;
190
204
  }
@@ -192,18 +206,36 @@ class MediaPlayerSynchronizer extends events_1.default {
192
206
  this._viewOnly = value;
193
207
  this.mediaSession.coordinator.canPlayPause = !value;
194
208
  this.mediaSession.coordinator.canSeek = !value;
209
+ this.mediaSession.coordinator.canSetTrack = !value;
210
+ this.mediaSession.coordinator.canSetTrackData = !value;
195
211
  }
212
+ /**
213
+ * Volume limiter used to temporarily reduce the videos volume when someone speaks in a meeting.
214
+ */
196
215
  get volumeLimiter() {
197
216
  return this._volumeLimiter;
198
217
  }
218
+ /**
219
+ * Registers a new event listener.
220
+ * @param event Name of the event to add.
221
+ * @param listener Function to call when the event is triggered.
222
+ */
199
223
  addEventListener(event, listener) {
200
224
  this.on(event, listener);
201
225
  return this;
202
226
  }
227
+ /**
228
+ * Un-registers an existing event listener.
229
+ * @param event Name of the event to remove.
230
+ * @param listener Function that was registered in call to `addEventListener()`.
231
+ */
203
232
  removeEventListener(event, listener) {
204
233
  this.off(event, listener);
205
234
  return this;
206
235
  }
236
+ /**
237
+ * Ends synchronization of the current media player.
238
+ */
207
239
  end() {
208
240
  if (this._onEnd) {
209
241
  try {
@@ -223,6 +255,15 @@ class MediaPlayerSynchronizer extends events_1.default {
223
255
  }
224
256
  }
225
257
  }
258
+ /**
259
+ * Begin a local seek operation.
260
+ *
261
+ * @remarks
262
+ * UI can call this when a user grabs a timeline scrubber and starts scrubbing the video to a
263
+ * new playback position. The synchronizer will being a new suspension which temporarily
264
+ * disconnects the client for the rest of the group for synchronization purposes. Calling
265
+ * `endSeek()` will end the suspension and seek the group to the users final seek position.
266
+ */
226
267
  beginSeek() {
227
268
  if (this._seekSuspension) {
228
269
  throw new Error(`MediaPlayerSynchronizer: cannot begin seek. A seek is already in progress.`);
@@ -230,6 +271,10 @@ class MediaPlayerSynchronizer extends events_1.default {
230
271
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.BeginSeekCalled);
231
272
  this._seekSuspension = this._mediaSession.coordinator.beginSuspension();
232
273
  }
274
+ /**
275
+ * Ends a seek operation that was started by calling `beginSeek()`.
276
+ * @param seekTo Playback position in seconds to seek the group to.
277
+ */
233
278
  endSeek(seekTo) {
234
279
  if (!this._seekSuspension) {
235
280
  throw new Error(`MediaPlayerSynchronizer: cannot end seek. No seek is in progress.`);
@@ -244,18 +289,39 @@ class MediaPlayerSynchronizer extends events_1.default {
244
289
  suspension.end(seekTo);
245
290
  this.dispatchUserAction({ action: 'seekto', seekTime: seekTo });
246
291
  }
292
+ /**
293
+ * Tells the group to begin playing the current video.
294
+ *
295
+ * @remarks
296
+ * For proper operation apps should avoid calling `mediaSession.coordinator.play()` directly
297
+ * and instead use the synchronizers `play()` method.
298
+ */
247
299
  play() {
248
300
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayCalled);
249
301
  this._expectedPlaybackState = 'playing';
250
302
  this._mediaSession.coordinator.play();
251
303
  this.dispatchUserAction({ action: 'play' });
252
304
  }
305
+ /**
306
+ * Tells the group to pause the current video.
307
+ *
308
+ * @remarks
309
+ * For proper operation apps should avoid calling `mediaSession.coordinator.pause()` directly
310
+ * and instead use the synchronizers `pause()` method.
311
+ */
253
312
  pause() {
254
313
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PauseCalled);
255
314
  this._expectedPlaybackState = 'paused';
256
315
  this._mediaSession.coordinator.pause();
257
316
  this.dispatchUserAction({ action: 'pause' });
258
317
  }
318
+ /**
319
+ * Tells the group to seek the current video to a new playback position.
320
+ *
321
+ * @remarks
322
+ * For proper operation apps should avoid calling `mediaSession.coordinator.seekTo()` directly
323
+ * and instead use the synchronizers `seekTo()` method.
324
+ */
259
325
  seekTo(time) {
260
326
  // Always seek player to new time.
261
327
  // - This resolves an issue where the timeline scrubber can temporarily snap back to the original
@@ -265,11 +331,25 @@ class MediaPlayerSynchronizer extends events_1.default {
265
331
  this._mediaSession.coordinator.seekTo(time);
266
332
  this.dispatchUserAction({ action: 'seekto', seekTime: time });
267
333
  }
334
+ /**
335
+ * Tells the group to change to a new track.
336
+ *
337
+ * @remarks
338
+ * For proper operation apps should avoid calling `mediaSession.coordinator.setTrack()` directly
339
+ * and instead use the synchronizers `setTrack()` method.
340
+ */
268
341
  setTrack(track, waitPoints) {
269
342
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackCalled);
270
343
  this._mediaSession.coordinator.setTrack(track, waitPoints);
271
344
  this.dispatchUserAction({ action: 'settrack', metadata: track });
272
345
  }
346
+ /**
347
+ * Updates the current tracks data object.
348
+ *
349
+ * @remarks
350
+ * For proper operation apps should avoid calling `mediaSession.coordinator.setTrackData()` directly
351
+ * and instead use the synchronizers `setTrackData()` method.
352
+ */
273
353
  setTrackData(data) {
274
354
  this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackDataCalled);
275
355
  this._trackData = data;
@@ -294,25 +374,7 @@ class MediaPlayerSynchronizer extends events_1.default {
294
374
  }
295
375
  catchupPlayer(time) {
296
376
  return __awaiter(this, void 0, void 0, function* () {
297
- // Only fast seek if:
298
- // - more then 2 seconds behind.
299
- // - fast seek hasn't been disabled.
300
- // - the current playback rate is 1.0.
301
- if (time >= (this._player.currentTime + 2.0) && this.catchupFastSeekPeriod > 0 && this._player.playbackRate == 1.0) {
302
- // Fast seek to new position
303
- const suspension = yield this._mediaSession.coordinator.beginSuspension();
304
- const seekPeriod = Math.min(time - this._player.currentTime, this.catchupFastSeekPeriod);
305
- const startTime = time - seekPeriod;
306
- this._player.currentTime = startTime;
307
- this._player.playbackRate = 4.0;
308
- setTimeout(() => __awaiter(this, void 0, void 0, function* () {
309
- this._player.playbackRate = 1.0;
310
- yield suspension.end();
311
- }), (seekPeriod * 0.25) * 1000);
312
- }
313
- else {
314
- this._player.currentTime = time;
315
- }
377
+ this._player.currentTime = time;
316
378
  });
317
379
  }
318
380
  }
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  import { ExtendedMediaSessionActionDetails } from './MediaSessionExtensions';
6
6
  /**
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.MediaSessionActionThrottler = void 0;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  export interface MediaSessionCoordinatorSuspension {
6
6
  waitPoint?: CoordinationWaitPoint;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.MediaSessionCoordinatorEvents = void 0;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  import { MediaSessionActionThrottler } from './MediaSessionActionThrottler';
6
6
  import { ExtendedMediaSessionActionDetails } from './MediaSessionExtensions';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.RepeatedActionThrottler = void 0;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  import { IMediaPlayer } from './IMediaPlayer';
6
6
  export declare enum LevelType {
@@ -24,7 +24,7 @@ export declare class VolumeLimiter {
24
24
  * Time, in seconds, that the volume should be lowered.
25
25
  *
26
26
  * @remarks
27
- * Applications should periodically call `lowerVolume()` to keep teh volume lowered.
27
+ * Applications should periodically call `lowerVolume()` to keep the volume lowered.
28
28
  */
29
29
  get duration(): number;
30
30
  set duration(value: number);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.VolumeLimiter = exports.LevelType = void 0;
@@ -31,7 +31,7 @@ class VolumeLimiter {
31
31
  * Time, in seconds, that the volume should be lowered.
32
32
  *
33
33
  * @remarks
34
- * Applications should periodically call `lowerVolume()` to keep teh volume lowered.
34
+ * Applications should periodically call `lowerVolume()` to keep the volume lowered.
35
35
  */
36
36
  get duration() {
37
37
  return this._duration.seconds;
package/bin/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  export * from './EphemeralMediaSession';
6
6
  export * from './EphemeralMediaSessionCoordinator';
package/bin/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
7
  if (k2 === undefined) k2 = k;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  /// <reference types="node" />
6
6
  import { IEvent, IEphemeralEvent, TimeInterval, IRuntimeSignaler } from '@microsoft/live-share';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
7
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  import { IRuntimeSignaler, TimeInterval } from '@microsoft/live-share';
6
6
  import { GroupTransportState } from './GroupTransportState';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.GroupPlaybackPosition = void 0;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  /// <reference types="node" />
6
6
  import { IEvent } from '@microsoft/live-share';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  /// <reference types="node" />
6
6
  import { IEvent } from '@microsoft/live-share';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
5
  */
6
6
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
  /// <reference types="node" />
6
6
  import { IEvent } from '@microsoft/live-share';