senza-sdk 4.2.51-e8275ed.0 → 4.2.51-f4d1f9b.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.
- package/dist/bundle.js +1 -1
- package/package.json +1 -1
- package/src/remotePlayer.js +34 -32
- package/src/utils.js +2 -4
package/package.json
CHANGED
package/src/remotePlayer.js
CHANGED
|
@@ -1424,8 +1424,7 @@ class RemotePlayer extends EventTarget {
|
|
|
1424
1424
|
* @param {string} prevSelectedTextTrack - The previously selected text track ID.
|
|
1425
1425
|
* @returns {Promise<void>} Resolves when the operation is complete.
|
|
1426
1426
|
* */
|
|
1427
|
-
async _selectTextTrackV3(textTrackId
|
|
1428
|
-
sdkLogger.log(`remotePlayer _selectTextTrackV3: prevAudioTrack=${prevSelectedTextTrack} textTrackId=${textTrackId} isPlaying=${this._isPlaying}`);
|
|
1427
|
+
async _selectTextTrackV3(textTrackId) {
|
|
1429
1428
|
if (window.cefQuery) {
|
|
1430
1429
|
const FCID = getFCID();
|
|
1431
1430
|
const logger = sdkLogger.withFields({ FCID });
|
|
@@ -1766,29 +1765,29 @@ class RemotePlayer extends EventTarget {
|
|
|
1766
1765
|
let timerId = 0;
|
|
1767
1766
|
const timeBeforeSendingRequest = Date.now();
|
|
1768
1767
|
const queryId = window.cefQuery({
|
|
1769
|
-
request: JSON.stringify({ target: "TC", waitForResponse: true,
|
|
1768
|
+
request: JSON.stringify({ target: "TC", waitForResponse: true, message: JSON.stringify(message) }),
|
|
1770
1769
|
persistent: false,
|
|
1771
1770
|
onSuccess: () => {
|
|
1772
1771
|
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1773
|
-
logger.withFields({ duration }).log(`
|
|
1772
|
+
logger.withFields({ duration }).log(`stopSubtitle completed successfully after ${duration} ms`);
|
|
1774
1773
|
this._inTransition = false;
|
|
1775
1774
|
timerId = clearTimer(timerId);
|
|
1776
1775
|
resolve(true);
|
|
1777
1776
|
},
|
|
1778
1777
|
onFailure: (code, msg) => {
|
|
1779
1778
|
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1780
|
-
logger.withFields({ duration }).log(`
|
|
1779
|
+
logger.withFields({ duration }).log(`stopSubtitle failed after ${duration} ms. Error code: ${code}, error message: ${msg}`);
|
|
1781
1780
|
this._inTransition = false;
|
|
1782
1781
|
timerId = clearTimer(timerId);
|
|
1783
1782
|
reject(new SenzaError(code, msg));
|
|
1784
1783
|
}
|
|
1785
1784
|
});
|
|
1786
|
-
logger.log(`window.cefQuery for
|
|
1785
|
+
logger.log(`window.cefQuery for stopSubtitle returned query id ${queryId}`);
|
|
1787
1786
|
const timeout = this._remotePlayerConfirmationTimeout + 1000;
|
|
1788
1787
|
timerId = setTimeout(() => {
|
|
1789
|
-
logger.log(`
|
|
1788
|
+
logger.log(`stopSubtitle reached timeout of ${timeout} ms, canceling query id ${queryId}`);
|
|
1790
1789
|
window.cefQueryCancel(queryId);
|
|
1791
|
-
reject(new SenzaError(6000, `
|
|
1790
|
+
reject(new SenzaError(6000, `stopSubtitle reached timeout of ${timeout} ms`));
|
|
1792
1791
|
}, timeout, queryId);
|
|
1793
1792
|
});
|
|
1794
1793
|
}
|
|
@@ -1804,6 +1803,9 @@ class RemotePlayer extends EventTarget {
|
|
|
1804
1803
|
const logger = sdkLogger.withFields({ FCID });
|
|
1805
1804
|
logger.log("remotePlayer play subtitle: sending play action");
|
|
1806
1805
|
const configuration = remotePlayer.getConfiguration();
|
|
1806
|
+
if (!remotePlayer.textTrackVisibility) {
|
|
1807
|
+
sdkLogger.info("override selected track on _playSubtitle with \"\"");
|
|
1808
|
+
}
|
|
1807
1809
|
const subtitlesLanguage = remotePlayer.textTrackVisibility && (remotePlayer._selectedSubtitlesTrack || configuration.preferredSubtitlesLanguage) || "";
|
|
1808
1810
|
let request;
|
|
1809
1811
|
const message = {
|
|
@@ -1818,7 +1820,6 @@ class RemotePlayer extends EventTarget {
|
|
|
1818
1820
|
request = {
|
|
1819
1821
|
target: "TC",
|
|
1820
1822
|
waitForResponse: true,
|
|
1821
|
-
internalAction: "uiExit",
|
|
1822
1823
|
message: JSON.stringify(message)
|
|
1823
1824
|
};
|
|
1824
1825
|
} else {
|
|
@@ -1865,13 +1866,12 @@ class RemotePlayer extends EventTarget {
|
|
|
1865
1866
|
async _atomicSetSubtitleLanguage() {
|
|
1866
1867
|
sdkLogger.info("SetSubtitleLanguage: local video element set start while isPLaying=", this._isPlaying);
|
|
1867
1868
|
|
|
1868
|
-
this._targetSetSubtitlePlayingState = this.
|
|
1869
|
+
this._targetSetSubtitlePlayingState = this._isPlaying ? TargetPlayingState.PLAYING_UI : TargetPlayingState.PAUSED;
|
|
1869
1870
|
this._abortSetSubtitleLanguage = false;
|
|
1870
1871
|
this._isSetSubtitleByApplication = true;
|
|
1871
1872
|
|
|
1872
1873
|
let state = SetSubtitleLanguageState.INIT;
|
|
1873
1874
|
|
|
1874
|
-
let previousPendingSubtitleLanguage = this._pendingSubtitleLanguage;
|
|
1875
1875
|
let initialSubtitleLanguage = this._pendingSubtitleLanguage;
|
|
1876
1876
|
let res;
|
|
1877
1877
|
|
|
@@ -1879,37 +1879,37 @@ class RemotePlayer extends EventTarget {
|
|
|
1879
1879
|
try {
|
|
1880
1880
|
switch(state) {
|
|
1881
1881
|
case SetSubtitleLanguageState.INIT:
|
|
1882
|
-
state =
|
|
1882
|
+
state = SetSubtitleLanguageState.STOPPED; // always stop
|
|
1883
1883
|
break;
|
|
1884
1884
|
case SetSubtitleLanguageState.STOPPED:
|
|
1885
|
-
sdkLogger.
|
|
1885
|
+
sdkLogger.info("BEFORE STOP BEFORE SET SUBTITLE");
|
|
1886
1886
|
await this._stopSubtitle();
|
|
1887
|
-
sdkLogger.
|
|
1887
|
+
sdkLogger.info("AFTER STOP BEFORE SET SUBTITLE");
|
|
1888
1888
|
state = SetSubtitleLanguageState.SET;
|
|
1889
1889
|
break;
|
|
1890
1890
|
case SetSubtitleLanguageState.SET:
|
|
1891
1891
|
initialSubtitleLanguage = this._pendingSubtitleLanguage;
|
|
1892
|
-
|
|
1893
|
-
res = await this._selectTextTrackV3(initialSubtitleLanguage
|
|
1894
|
-
sdkLogger.
|
|
1892
|
+
sdkLogger.log(`remotePlayer _selectTextTrackV3: textTrackId=${textTrackId} isPlaying=${this._isPlaying}`);
|
|
1893
|
+
res = await this._selectTextTrackV3(initialSubtitleLanguage);
|
|
1894
|
+
sdkLogger.info("AFTER SET SUBTITLE 1");
|
|
1895
|
+
state = this._isPlaying ? SetSubtitleLanguageState.PLAYING: SetSubtitleLanguageState.DONE;
|
|
1896
|
+
break;
|
|
1897
|
+
case SetSubtitleLanguageState.PLAYING:
|
|
1898
|
+
if (!this._abortSetSubtitleLanguage) {
|
|
1899
|
+
sdkLogger.info("TARGET PLAYING STATE", this._targetSetSubtitlePlayingState);
|
|
1900
|
+
sdkLogger.info("BEFORE PLAY AFTER SET SUBTITLE");
|
|
1901
|
+
this._playSubtitle();
|
|
1902
|
+
}
|
|
1895
1903
|
state = SetSubtitleLanguageState.DONE;
|
|
1896
1904
|
break;
|
|
1897
1905
|
}
|
|
1898
1906
|
} catch (error) {
|
|
1899
|
-
sdkLogger.
|
|
1907
|
+
sdkLogger.info(`Error during set subtitle process: ${error.message}`);
|
|
1900
1908
|
state = SetSubtitleLanguageState.DONE;
|
|
1901
1909
|
res = Promise.reject(error);
|
|
1902
1910
|
}
|
|
1903
1911
|
}
|
|
1904
1912
|
|
|
1905
|
-
if (!this._abortSetSubtitleLanguage) {
|
|
1906
|
-
sdkLogger.error("TARGET PLAYING STATE", this._targetSetSubtitlePlayingState);
|
|
1907
|
-
sdkLogger.error("TEXT TRACK VISIBILITY", this._textTrackVisibility);
|
|
1908
|
-
if (this._targetSetSubtitlePlayingState === TargetPlayingState.PLAYING_ABR) {
|
|
1909
|
-
sdkLogger.error("BEFORE PLAY AFTER SET SUBTITLE 2");
|
|
1910
|
-
this._playSubtitle();
|
|
1911
|
-
}
|
|
1912
|
-
}
|
|
1913
1913
|
this._isSetSubtitleByApplication = false;
|
|
1914
1914
|
sdkLogger.info("SetSubtitleLanguage: local video element set subtitle end");
|
|
1915
1915
|
return res
|
|
@@ -1933,31 +1933,33 @@ class RemotePlayer extends EventTarget {
|
|
|
1933
1933
|
|
|
1934
1934
|
switch(state) {
|
|
1935
1935
|
case SetAudioLanguageState.INIT:
|
|
1936
|
-
|
|
1936
|
+
sdkLogger.info("BEFORE STOP BEFORE SET AUDIO");
|
|
1937
|
+
await this._stopAudio();
|
|
1938
|
+
sdkLogger.info("AFTER STOP BEFORE SET AUDIO");
|
|
1939
|
+
state = SetAudioLanguageState.SET;
|
|
1937
1940
|
break;
|
|
1938
1941
|
case SetAudioLanguageState.STOPPED:
|
|
1939
|
-
await this._stopAudio();
|
|
1940
1942
|
state = SetAudioLanguageState.SET;
|
|
1941
1943
|
break;
|
|
1942
1944
|
case SetAudioLanguageState.SET:
|
|
1943
1945
|
initialAudioLanguage = this._pendingAudioLanguage;
|
|
1944
1946
|
previousPendingAudioLanguage = this._selectedAudioTrack;
|
|
1945
1947
|
res = await this._selectAudioTrackV3(initialAudioLanguage, previousPendingAudioLanguage);
|
|
1946
|
-
sdkLogger.
|
|
1948
|
+
sdkLogger.info("BEFORE PLAY AFTER SET AUDIO 1");
|
|
1947
1949
|
state = SetAudioLanguageState.DONE;
|
|
1948
1950
|
break;
|
|
1949
1951
|
}
|
|
1950
1952
|
} catch (error) {
|
|
1951
|
-
sdkLogger.
|
|
1953
|
+
sdkLogger.info(`Error during set audio process: ${error.message}`);
|
|
1952
1954
|
state = SetAudioLanguageState.DONE;
|
|
1953
1955
|
res = Promise.reject(error);
|
|
1954
1956
|
}
|
|
1955
1957
|
}
|
|
1956
1958
|
|
|
1957
1959
|
if (!this._abortSetAudioLanguage) {
|
|
1958
|
-
sdkLogger.
|
|
1960
|
+
sdkLogger.info("TARGET PLAYING STATE", this._targetSetAudioPlayingState);
|
|
1959
1961
|
if (this._targetSetAudioPlayingState === TargetPlayingState.PLAYING_UI) {
|
|
1960
|
-
sdkLogger.
|
|
1962
|
+
sdkLogger.info("BEFORE PLAY AFTER SET AUDIO 2");
|
|
1961
1963
|
this._play();
|
|
1962
1964
|
}
|
|
1963
1965
|
}
|
package/src/utils.js
CHANGED
|
@@ -159,8 +159,7 @@ export const SetAudioLanguageState = Object.freeze({
|
|
|
159
159
|
INIT: "init",
|
|
160
160
|
STOPPED: "stopped",
|
|
161
161
|
SET: "set",
|
|
162
|
-
|
|
163
|
-
WAITING: "waiting",
|
|
162
|
+
PLAYING: "playing",
|
|
164
163
|
DONE: "done"
|
|
165
164
|
});
|
|
166
165
|
|
|
@@ -168,8 +167,7 @@ export const SetSubtitleLanguageState = Object.freeze({
|
|
|
168
167
|
INIT: "init",
|
|
169
168
|
STOPPED: "stopped",
|
|
170
169
|
SET: "set",
|
|
171
|
-
|
|
172
|
-
WAITING: "waiting",
|
|
170
|
+
PLAYING: "playing",
|
|
173
171
|
DONE: "done"
|
|
174
172
|
});
|
|
175
173
|
|