@playkit-js/playkit-js-kava 1.14.0 → 1.14.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playkit-js/playkit-js-kava",
3
- "version": "1.14.0",
3
+ "version": "1.14.1",
4
4
  "main": "dist/playkit-kava.js",
5
5
  "scripts": {
6
6
  "disabled-preinstall": "npx --yes --prefer-online --registry=https://npm.pkg.github.com --package @kaltura/kaltura-tools@latest kaltura-tools check --root=.",
@@ -34,7 +34,7 @@
34
34
  "@babel/runtime": "^7.23.8",
35
35
  "@microsoft/api-extractor": "^7.39.1",
36
36
  "@playkit-js/browserslist-config": "1.0.8",
37
- "@playkit-js/kaltura-player-js": "3.18.0-canary.0-7e6ca86",
37
+ "@playkit-js/kaltura-player-js": "3.17.77",
38
38
  "@playkit-js/moderation": "3.2.13-canary.0-5376147",
39
39
  "@playkit-js/playkit-js": "^0.84.6",
40
40
  "@playkit-js/playkit-js-downloads": "1.1.0-canary.0-60c49dc",
@@ -68,7 +68,7 @@
68
68
  "webpack-dev-server": "^4.15.1"
69
69
  },
70
70
  "peerDependencies": {
71
- "@playkit-js/kaltura-player-js": "3.17.16",
71
+ "@playkit-js/kaltura-player-js": "3.17.77",
72
72
  "@playkit-js/playkit-js": "^0.84.6",
73
73
  "@playkit-js/playkit-js-providers": "^2.40.4"
74
74
  },
@@ -211,6 +211,15 @@ export const KavaEventModel = {
211
211
  index: 14,
212
212
  getEventModel: (): any => ({})
213
213
  },
214
+ /**
215
+ * @type {string} PLAY_REACHED_90_PERCENT
216
+ * @memberof KavaEventType
217
+ */
218
+ PLAY_REACHED_90_PERCENT: {
219
+ type: 'PLAY_REACHED_90_PERCENT',
220
+ index: 15,
221
+ getEventModel: (): any => ({})
222
+ },
214
223
  /**
215
224
  * @type {string} SOURCE_SELECTED
216
225
  * @memberof KavaEventType
package/src/kava.ts CHANGED
@@ -40,7 +40,6 @@ class Kava extends BasePlugin {
40
40
  private _isEnded!: boolean;
41
41
  private _isPaused!: boolean;
42
42
  private _isBuffering!: boolean;
43
- private _timePercentEvent!: { [time: string]: boolean };
44
43
  private _isPlaying!: boolean;
45
44
  private _loadStartTime!: number;
46
45
  private _lastDroppedFrames: number = 0;
@@ -257,12 +256,6 @@ class Kava extends BasePlugin {
257
256
  this._isEnded = false;
258
257
  this._isPaused = false;
259
258
  this._isBuffering = false;
260
- this._timePercentEvent = {
261
- PLAY_REACHED_25_PERCENT: false,
262
- PLAY_REACHED_50_PERCENT: false,
263
- PLAY_REACHED_75_PERCENT: false,
264
- PLAY_REACHED_100_PERCENT: false
265
- };
266
259
  this._canPlayOccured = false;
267
260
  this._isManualPreload = false;
268
261
  }
@@ -360,6 +353,11 @@ class Kava extends BasePlugin {
360
353
  this.eventManager.listen(this.player, InfoEvent.INFO_SCREEN_OPEN, () => this._onInfoScreenOpened());
361
354
  this.eventManager.listen(this.player, ModerationEvent.REPORT_CLICKED, () => this._onReportClicked());
362
355
  this.eventManager.listen(this.player, ModerationEvent.REPORT_SUBMITTED, (event) => this._onReportSubmitted(event));
356
+ this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_25_PERCENT, (event) => this._onPlayerReached(event));
357
+ this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_50_PERCENT, (event) => this._onPlayerReached(event));
358
+ this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_75_PERCENT, (event) => this._onPlayerReached(event));
359
+ this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_90_PERCENT, (event) => this._onPlayerReached(event));
360
+ this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_100_PERCENT, (event) => this._onPlayerReached(event));
363
361
  this._bindApplicationEvents();
364
362
  this._bindPlaykitUIEvents();
365
363
  this._initTabMode();
@@ -626,21 +624,18 @@ class Kava extends BasePlugin {
626
624
 
627
625
  private _onTimeUpdate(): void {
628
626
  this._updatePlayTimeSumModel();
629
- const percent = parseFloat((this.player.currentTime! / this.player.duration!).toFixed(2));
630
- if (!this._timePercentEvent.PLAY_REACHED_25 && percent >= 0.25) {
631
- this._timePercentEvent.PLAY_REACHED_25 = true;
627
+ }
628
+
629
+ private _onPlayerReached(event: FakeEvent): void {
630
+ if (event.type === this.player.Event.Core.PLAY_REACHED_25_PERCENT) {
632
631
  this._sendAnalytics(KavaEventModel.PLAY_REACHED_25_PERCENT);
633
- }
634
- if (!this._timePercentEvent.PLAY_REACHED_50 && percent >= 0.5) {
635
- this._timePercentEvent.PLAY_REACHED_50 = true;
632
+ } else if (event.type === this.player.Event.Core.PLAY_REACHED_50_PERCENT) {
636
633
  this._sendAnalytics(KavaEventModel.PLAY_REACHED_50_PERCENT);
637
- }
638
- if (!this._timePercentEvent.PLAY_REACHED_75 && percent >= 0.75) {
639
- this._timePercentEvent.PLAY_REACHED_75 = true;
634
+ } else if (event.type === this.player.Event.Core.PLAY_REACHED_75_PERCENT) {
640
635
  this._sendAnalytics(KavaEventModel.PLAY_REACHED_75_PERCENT);
641
- }
642
- if (!this._timePercentEvent.PLAY_REACHED_100 && percent === 1) {
643
- this._timePercentEvent.PLAY_REACHED_100 = true;
636
+ } else if (event.type === this.player.Event.Core.PLAY_REACHED_90_PERCENT) {
637
+ this._sendAnalytics(KavaEventModel.PLAY_REACHED_90_PERCENT);
638
+ } else if (event.type === this.player.Event.Core.PLAY_REACHED_100_PERCENT) {
644
639
  this._sendAnalytics(KavaEventModel.PLAY_REACHED_100_PERCENT);
645
640
  }
646
641
  }
@@ -95,10 +95,6 @@ describe('KavaPlugin', function () {
95
95
  kava._isEnded.should.be.false;
96
96
  kava._isPaused.should.be.false;
97
97
  (kava._model.getSessionStartTime() === null).should.be.true;
98
- kava._timePercentEvent.PLAY_REACHED_25_PERCENT.should.be.false;
99
- kava._timePercentEvent.PLAY_REACHED_50_PERCENT.should.be.false;
100
- kava._timePercentEvent.PLAY_REACHED_75_PERCENT.should.be.false;
101
- kava._timePercentEvent.PLAY_REACHED_100_PERCENT.should.be.false;
102
98
  });
103
99
 
104
100
  it('should check _getDroppedFramesRatio does not return NaN if no new frames received', done => {