From 9964cf02b1f930dbc96d1b0cfa4be86b75d1a2cc Mon Sep 17 00:00:00 2001 From: JonathanTGold <62672270+JonathanTGold@users.noreply.github.com> Date: Wed, 7 Sep 2022 16:12:04 +0200 Subject: [PATCH] fix(FEC-11697): 2 captions are selected in the menu (#182) see kaltura/playkit-js#633 solves: FEC-11697 and FEC-11893 related pr: kaltura/playkit-js-hls#161 kaltura/playkit-js#633 --- package.json | 1 + src/dash-adapter.js | 25 +++++++++++-------------- test/src/dash-adapter.spec.js | 6 +++--- yarn.lock | 6 +++--- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index dc8d6a0c..d56afdb9 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "pushTaggedRelease": "git push --follow-tags --no-verify origin master", "release": "standard-version", "test": "NODE_ENV=test karma start --color --mode development", + "test:watch": "NODE_ENV=test karma start --browsers=Chrome --single-run=false --auto-watch", "watch": "webpack --progress --colors --watch --mode development" }, "husky": { diff --git a/src/dash-adapter.js b/src/dash-adapter.js index 21fa5edd..4b5798f1 100644 --- a/src/dash-adapter.js +++ b/src/dash-adapter.js @@ -1030,21 +1030,18 @@ export default class DashAdapter extends BaseMediaSourceAdapter { * @private */ _getParsedTextTracks(): Array { - let textTracks = this._shaka.getTextTracks(); let parsedTracks = []; - if (textTracks) { - for (let i = 0; i < textTracks.length; i++) { - let kind = textTracks[i].kind ? textTracks[i].kind + 's' : ''; - kind = kind === '' && this._config.useShakaTextTrackDisplay ? 'captions' : kind; - let settings = { - kind: kind, - active: false, - label: textTracks[i].label, - language: textTracks[i].language, - index: i - }; - parsedTracks.push(new TextTrack(settings)); - } + for (const textTrack of this._shaka.getTextTracks()) { + let kind = textTrack.kind ? textTrack.kind + 's' : ''; + kind = kind === '' && this._config.useShakaTextTrackDisplay ? 'captions' : kind; + let settings = { + id: textTrack.id, + kind: kind, + active: false, + label: textTrack.label, + language: textTrack.language + }; + parsedTracks.push(new TextTrack(settings)); } return parsedTracks; } diff --git a/test/src/dash-adapter.spec.js b/test/src/dash-adapter.spec.js index 4b3de118..13c92bc4 100644 --- a/test/src/dash-adapter.spec.js +++ b/test/src/dash-adapter.spec.js @@ -547,10 +547,10 @@ describe('DashAdapter: _getParsedTracks', () => { (track.label === audioTracks[track.index].label).should.be.true; } if (track instanceof TextTrack) { - track.kind.should.equal(textTracks[track.index].kind + 's'); + const dashTrack = textTracks.find(textTrack => textTrack.id === track.id && textTrack.label === track.label); + track.kind.should.equal(dashTrack.kind + 's'); track.active.should.be.false; - track.language.should.equal(textTracks[track.index].language); - (track.label === textTracks[track.index].label).should.be.true; + track.language.should.equal(dashTrack.language); } }); done(); diff --git a/yarn.lock b/yarn.lock index 9a87246d..c405b650 100644 --- a/yarn.lock +++ b/yarn.lock @@ -854,9 +854,9 @@ integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== "@playkit-js/playkit-js@canary": - version "0.77.0-canary.7812357" - resolved "https://registry.yarnpkg.com/@playkit-js/playkit-js/-/playkit-js-0.77.0-canary.7812357.tgz#1e9c9edaba2f17faa86c3ab7d9057be0857e6e07" - integrity sha512-19xK5Ro2aBFIsKFg78PNK0PXVhWWqRBsAieGGm2jRmcOSvkp6l34DfyWxpTK5ZRWG1aHu2C7i0CNslLCBHtZ0Q== + version "0.78.1-canary.bf28e11" + resolved "https://registry.yarnpkg.com/@playkit-js/playkit-js/-/playkit-js-0.78.1-canary.bf28e11.tgz#3e8e3d2be59729781fad6db90574310047516605" + integrity sha512-tLGBBS80gVh5DLpYNCfBStFaEvmS50Mk/3emU9sY65HjJkhueq1sj3Nj1UM2x1tksc77Q6NSNLX/DFUtsqpNdg== dependencies: js-logger "^1.6.0" ua-parser-js "1.0.2"