@magmamath/students-features 1.3.23-rc.16 → 1.3.23-rc.17
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/commonjs/features/voice/playing/hooks/useVoiceTranscriptionController.js +1 -0
- package/dist/commonjs/features/voice/playing/hooks/useVoiceTranscriptionController.js.map +1 -1
- package/dist/commonjs/features/voice/playing/model/PlaybackController.js +67 -32
- package/dist/commonjs/features/voice/playing/model/PlaybackController.js.map +1 -1
- package/dist/commonjs/features/voice/playing/model/Player.model.js +24 -1
- package/dist/commonjs/features/voice/playing/model/Player.model.js.map +1 -1
- package/dist/commonjs/features/voice/playing/model/VoicePlayer.model.js +7 -2
- package/dist/commonjs/features/voice/playing/model/VoicePlayer.model.js.map +1 -1
- package/dist/module/features/voice/playing/hooks/useVoiceTranscriptionController.js +1 -0
- package/dist/module/features/voice/playing/hooks/useVoiceTranscriptionController.js.map +1 -1
- package/dist/module/features/voice/playing/model/PlaybackController.js +67 -32
- package/dist/module/features/voice/playing/model/PlaybackController.js.map +1 -1
- package/dist/module/features/voice/playing/model/Player.model.js +24 -1
- package/dist/module/features/voice/playing/model/Player.model.js.map +1 -1
- package/dist/module/features/voice/playing/model/VoicePlayer.model.js +7 -2
- package/dist/module/features/voice/playing/model/VoicePlayer.model.js.map +1 -1
- package/dist/typescript/commonjs/features/voice/playing/hooks/useVoiceTranscriptionController.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/playing/model/PlaybackController.d.ts +3 -2
- package/dist/typescript/commonjs/features/voice/playing/model/PlaybackController.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/playing/model/Player.model.d.ts +3 -0
- package/dist/typescript/commonjs/features/voice/playing/model/Player.model.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/playing/model/VoicePlayer.model.d.ts +2 -0
- package/dist/typescript/commonjs/features/voice/playing/model/VoicePlayer.model.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/playing/hooks/useVoiceTranscriptionController.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/playing/model/PlaybackController.d.ts +3 -2
- package/dist/typescript/module/features/voice/playing/model/PlaybackController.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/playing/model/Player.model.d.ts +3 -0
- package/dist/typescript/module/features/voice/playing/model/Player.model.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/playing/model/VoicePlayer.model.d.ts +2 -0
- package/dist/typescript/module/features/voice/playing/model/VoicePlayer.model.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/voice/playing/hooks/useVoiceTranscriptionController.ts +1 -0
- package/src/features/voice/playing/model/PlaybackController.ts +73 -36
- package/src/features/voice/playing/model/Player.model.ts +26 -1
- package/src/features/voice/playing/model/VoicePlayer.model.ts +7 -1
|
@@ -60,6 +60,7 @@ const useVoiceTranscriptionController = ({
|
|
|
60
60
|
}, [model, answersKey]);
|
|
61
61
|
(0, _react.useEffect)(() => {
|
|
62
62
|
model.stopAudio();
|
|
63
|
+
model.setCurrentAttempt(activeAttempt);
|
|
63
64
|
if (activeAttempt !== null) {
|
|
64
65
|
model.loader.loadTranscriptForAttempt(activeAttempt);
|
|
65
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effectorReact","require","_react","_reactI18next","_constants","_helpers","_supportedLanguages","_i18n","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","useText","i18n","useTranslation","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","useUnit","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","getActiveAttempt","answersKey","useMemo","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","NO_AUDIO_BE_MESSAGE","isActiveTranscriptLoading","isSourceSameAsTarget","language","resolveGoogleLanguageCode","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","useRef","current","useEffect","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","useCallback","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_effectorReact","require","_react","_reactI18next","_constants","_helpers","_supportedLanguages","_i18n","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","useText","i18n","useTranslation","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","useUnit","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","getActiveAttempt","answersKey","useMemo","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","NO_AUDIO_BE_MESSAGE","isActiveTranscriptLoading","isSourceSameAsTarget","language","resolveGoogleLanguageCode","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","useRef","current","useEffect","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","setCurrentAttempt","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","useCallback","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,6 @@ class PlaybackController {
|
|
|
13
13
|
this.collection = deps.collection;
|
|
14
14
|
this.player = deps.player;
|
|
15
15
|
this.downloader = deps.downloader;
|
|
16
|
-
this.onCurrentAttemptChange = deps.onCurrentAttemptChange;
|
|
17
16
|
this.player.playbackFinished.watch(() => this.clearCurrentAttempt());
|
|
18
17
|
}
|
|
19
18
|
togglePlayPause = attemptNumber => {
|
|
@@ -24,6 +23,35 @@ class PlaybackController {
|
|
|
24
23
|
this.handlePlayAttempt(attemptNumber);
|
|
25
24
|
}
|
|
26
25
|
};
|
|
26
|
+
preloadAudio = (0, _effector.createEffect)(async attemptNumber => {
|
|
27
|
+
const item = this.collection.get(attemptNumber);
|
|
28
|
+
if (!item) return;
|
|
29
|
+
if (this.collection.hasAudio(attemptNumber)) {
|
|
30
|
+
this.primePlayerIfIdle(attemptNumber);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (item.audioDownloadPromise) {
|
|
34
|
+
try {
|
|
35
|
+
await item.audioDownloadPromise;
|
|
36
|
+
} catch {}
|
|
37
|
+
this.primePlayerIfIdle(attemptNumber);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
await this.downloadAudio(attemptNumber);
|
|
42
|
+
this.primePlayerIfIdle(attemptNumber);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
if (error instanceof Error && error.name === 'AbortError') return;
|
|
45
|
+
console.error('Audio preload error:', error);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
primePlayerIfIdle(attemptNumber) {
|
|
49
|
+
if (this.player.$playerState.getState() !== _PlayerModel.PlayerState.IDLE) return;
|
|
50
|
+
if (this.currentPlayingAttempt !== null) return;
|
|
51
|
+
const audioUri = this.collection.get(attemptNumber)?.audioUri;
|
|
52
|
+
if (!audioUri) return;
|
|
53
|
+
this.player.prime(audioUri);
|
|
54
|
+
}
|
|
27
55
|
halt() {
|
|
28
56
|
this.shouldPreventPlayback = true;
|
|
29
57
|
this.abortAllDownloads();
|
|
@@ -44,7 +72,6 @@ class PlaybackController {
|
|
|
44
72
|
}
|
|
45
73
|
clearCurrentAttempt() {
|
|
46
74
|
this.currentPlayingAttempt = null;
|
|
47
|
-
this.onCurrentAttemptChange(null);
|
|
48
75
|
}
|
|
49
76
|
abortAllDownloads() {
|
|
50
77
|
this.collection.getAll().forEach(item => {
|
|
@@ -58,6 +85,37 @@ class PlaybackController {
|
|
|
58
85
|
}
|
|
59
86
|
});
|
|
60
87
|
}
|
|
88
|
+
async downloadAudio(attemptNumber) {
|
|
89
|
+
const item = this.collection.get(attemptNumber);
|
|
90
|
+
if (!item) return;
|
|
91
|
+
const {
|
|
92
|
+
collectionItem,
|
|
93
|
+
downloadPromise
|
|
94
|
+
} = await this.downloader.download({
|
|
95
|
+
audioFileId: item.audioFileId,
|
|
96
|
+
attemptNumber
|
|
97
|
+
});
|
|
98
|
+
this.collection.update(attemptNumber, collectionItem);
|
|
99
|
+
try {
|
|
100
|
+
const result = await downloadPromise;
|
|
101
|
+
this.collection.update(attemptNumber, {
|
|
102
|
+
audioUri: result.uri,
|
|
103
|
+
audioLoading: false,
|
|
104
|
+
audioError: undefined,
|
|
105
|
+
controller: undefined,
|
|
106
|
+
audioDownloadPromise: undefined
|
|
107
|
+
});
|
|
108
|
+
} catch (error) {
|
|
109
|
+
const isAbort = error instanceof Error && error.name === 'AbortError';
|
|
110
|
+
this.collection.update(attemptNumber, {
|
|
111
|
+
audioLoading: false,
|
|
112
|
+
audioError: isAbort ? undefined : error instanceof Error ? error.message : 'Failed to download audio',
|
|
113
|
+
controller: undefined,
|
|
114
|
+
audioDownloadPromise: undefined
|
|
115
|
+
});
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
61
119
|
handlePlayAttempt = (0, _effector.createEffect)(async attemptNumber => {
|
|
62
120
|
this.shouldPreventPlayback = false;
|
|
63
121
|
const item = this.collection.get(attemptNumber);
|
|
@@ -71,46 +129,24 @@ class PlaybackController {
|
|
|
71
129
|
}
|
|
72
130
|
try {
|
|
73
131
|
this.player.setPlayerState(_PlayerModel.PlayerState.LOADING);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
audioFileId: item.audioFileId,
|
|
79
|
-
attemptNumber
|
|
80
|
-
});
|
|
81
|
-
if (this.shouldPreventPlayback) {
|
|
82
|
-
collectionItem.controller?.abort();
|
|
83
|
-
return;
|
|
132
|
+
if (item.audioDownloadPromise) {
|
|
133
|
+
await item.audioDownloadPromise;
|
|
134
|
+
} else {
|
|
135
|
+
await this.downloadAudio(attemptNumber);
|
|
84
136
|
}
|
|
85
|
-
this.collection.update(attemptNumber, collectionItem);
|
|
86
|
-
const result = await downloadPromise;
|
|
87
137
|
if (this.shouldPreventPlayback) {
|
|
88
|
-
|
|
89
|
-
URL.revokeObjectURL(result.uri);
|
|
90
|
-
}
|
|
138
|
+
this.player.setPlayerState(_PlayerModel.PlayerState.IDLE);
|
|
91
139
|
return;
|
|
92
140
|
}
|
|
93
|
-
this.collection.update(attemptNumber, {
|
|
94
|
-
audioUri: result.uri,
|
|
95
|
-
audioLoading: false,
|
|
96
|
-
audioError: undefined,
|
|
97
|
-
controller: undefined,
|
|
98
|
-
audioDownloadPromise: undefined
|
|
99
|
-
});
|
|
100
141
|
this.player.setPlayerState(_PlayerModel.PlayerState.IDLE);
|
|
101
142
|
this.playAudioFx(attemptNumber);
|
|
102
143
|
} catch (error) {
|
|
103
|
-
console.error('Audio download error:', error);
|
|
104
144
|
if (error instanceof Error && error.name === 'AbortError') {
|
|
105
145
|
this.player.setPlayerState(_PlayerModel.PlayerState.IDLE);
|
|
106
146
|
return;
|
|
107
147
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
audioError: error instanceof Error ? error.message : 'Failed to download audio',
|
|
111
|
-
controller: undefined,
|
|
112
|
-
audioDownloadPromise: undefined
|
|
113
|
-
});
|
|
148
|
+
console.error('Audio download error:', error);
|
|
149
|
+
this.player.setPlayerState(_PlayerModel.PlayerState.IDLE);
|
|
114
150
|
}
|
|
115
151
|
});
|
|
116
152
|
playAudioFx = (0, _effector.createEffect)(async attemptNumber => {
|
|
@@ -133,7 +169,6 @@ class PlaybackController {
|
|
|
133
169
|
return;
|
|
134
170
|
}
|
|
135
171
|
this.currentPlayingAttempt = attemptNumber;
|
|
136
|
-
this.onCurrentAttemptChange(attemptNumber);
|
|
137
172
|
await this.player.play(item.audioUri);
|
|
138
173
|
} catch (error) {
|
|
139
174
|
console.error('Error playing audio:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_PlayerModel","PlaybackController","currentPlayingAttempt","shouldPreventPlayback","constructor","deps","collection","player","downloader","
|
|
1
|
+
{"version":3,"names":["_effector","require","_PlayerModel","PlaybackController","currentPlayingAttempt","shouldPreventPlayback","constructor","deps","collection","player","downloader","playbackFinished","watch","clearCurrentAttempt","togglePlayPause","attemptNumber","playerState","$playerState","getState","PlayerState","PLAYING","pause","handlePlayAttempt","preloadAudio","createEffect","item","get","hasAudio","primePlayerIfIdle","audioDownloadPromise","downloadAudio","error","Error","name","console","IDLE","audioUri","prime","halt","abortAllDownloads","stop","releaseResources","getAll","forEach","controller","abortDownload","startsWith","URL","revokeObjectURL","e","audioLoading","update","undefined","collectionItem","downloadPromise","download","audioFileId","result","uri","audioError","isAbort","message","playAudioFx","setPlayerState","LOADING","warn","remove","playing","resume","play","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/PlaybackController.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUO,MAAME,kBAAkB,CAAC;EAItBC,qBAAqB,GAAkB,IAAI;EAC3CC,qBAAqB,GAAG,KAAK;EAErCC,WAAWA,CAACC,IAA4B,EAAE;IACxC,IAAI,CAACC,UAAU,GAAGD,IAAI,CAACC,UAAU;IACjC,IAAI,CAACC,MAAM,GAAGF,IAAI,CAACE,MAAM;IACzB,IAAI,CAACC,UAAU,GAAGH,IAAI,CAACG,UAAU;IACjC,IAAI,CAACD,MAAM,CAACE,gBAAgB,CAACC,KAAK,CAAC,MAAM,IAAI,CAACC,mBAAmB,CAAC,CAAC,CAAC;EACtE;EAEgBC,eAAe,GAAIC,aAAqB,IAAK;IAC3D,MAAMC,WAAW,GAAG,IAAI,CAACP,MAAM,CAACQ,YAAY,CAACC,QAAQ,CAAC,CAAC;IACvD,IAAI,IAAI,CAACd,qBAAqB,KAAKW,aAAa,IAAIC,WAAW,KAAKG,wBAAW,CAACC,OAAO,EAAE;MACvF,IAAI,CAACX,MAAM,CAACY,KAAK,CAAC,CAAC;IACrB,CAAC,MAAM;MACL,IAAI,CAACC,iBAAiB,CAACP,aAAa,CAAC;IACvC;EACF,CAAC;EAEeQ,YAAY,GAAG,IAAAC,sBAAY,EAAC,MAAOT,aAAqB,IAAK;IAC3E,MAAMU,IAAI,GAAG,IAAI,CAACjB,UAAU,CAACkB,GAAG,CAACX,aAAa,CAAC;IAC/C,IAAI,CAACU,IAAI,EAAE;IACX,IAAI,IAAI,CAACjB,UAAU,CAACmB,QAAQ,CAACZ,aAAa,CAAC,EAAE;MAC3C,IAAI,CAACa,iBAAiB,CAACb,aAAa,CAAC;MACrC;IACF;IACA,IAAIU,IAAI,CAACI,oBAAoB,EAAE;MAC7B,IAAI;QACF,MAAMJ,IAAI,CAACI,oBAAoB;MACjC,CAAC,CAAC,MAAM,CAAC;MACT,IAAI,CAACD,iBAAiB,CAACb,aAAa,CAAC;MACrC;IACF;IACA,IAAI;MACF,MAAM,IAAI,CAACe,aAAa,CAACf,aAAa,CAAC;MACvC,IAAI,CAACa,iBAAiB,CAACb,aAAa,CAAC;IACvC,CAAC,CAAC,OAAOgB,KAAK,EAAE;MACd,IAAIA,KAAK,YAAYC,KAAK,IAAID,KAAK,CAACE,IAAI,KAAK,YAAY,EAAE;MAC3DC,OAAO,CAACH,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;IAC9C;EACF,CAAC,CAAC;EAEMH,iBAAiBA,CAACb,aAAqB,EAAE;IAC/C,IAAI,IAAI,CAACN,MAAM,CAACQ,YAAY,CAACC,QAAQ,CAAC,CAAC,KAAKC,wBAAW,CAACgB,IAAI,EAAE;IAC9D,IAAI,IAAI,CAAC/B,qBAAqB,KAAK,IAAI,EAAE;IACzC,MAAMgC,QAAQ,GAAG,IAAI,CAAC5B,UAAU,CAACkB,GAAG,CAACX,aAAa,CAAC,EAAEqB,QAAQ;IAC7D,IAAI,CAACA,QAAQ,EAAE;IACf,IAAI,CAAC3B,MAAM,CAAC4B,KAAK,CAACD,QAAQ,CAAC;EAC7B;EAEOE,IAAIA,CAAA,EAAG;IACZ,IAAI,CAACjC,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACkC,iBAAiB,CAAC,CAAC;IACxB,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CAAC,CAAC;IAClB,IAAI,CAAC3B,mBAAmB,CAAC,CAAC;EAC5B;EAEO4B,gBAAgBA,CAAA,EAAG;IACxB,IAAI,CAACjC,UAAU,CAACkC,MAAM,CAAC,CAAC,CAACC,OAAO,CAAElB,IAAI,IAAK;MACzC,IAAIA,IAAI,CAACmB,UAAU,EAAE;QACnB,IAAI,CAAClC,UAAU,CAACmC,aAAa,CAACpB,IAAI,CAACmB,UAAU,CAAC;MAChD;MACA,IAAInB,IAAI,CAACW,QAAQ,EAAEU,UAAU,CAAC,OAAO,CAAC,EAAE;QACtC,IAAI;UACFC,GAAG,CAACC,eAAe,CAACvB,IAAI,CAACW,QAAQ,CAAC;QACpC,CAAC,CAAC,OAAOa,CAAC,EAAE,CAAC;MACf;IACF,CAAC,CAAC;EACJ;EAEQpC,mBAAmBA,CAAA,EAAG;IAC5B,IAAI,CAACT,qBAAqB,GAAG,IAAI;EACnC;EAEQmC,iBAAiBA,CAAA,EAAG;IAC1B,IAAI,CAAC/B,UAAU,CAACkC,MAAM,CAAC,CAAC,CAACC,OAAO,CAAElB,IAAI,IAAK;MACzC,IAAIA,IAAI,CAACmB,UAAU,IAAInB,IAAI,CAACyB,YAAY,EAAE;QACxC,IAAI,CAACxC,UAAU,CAACmC,aAAa,CAACpB,IAAI,CAACmB,UAAU,CAAC;QAC9C,IAAI,CAACpC,UAAU,CAAC2C,MAAM,CAAC1B,IAAI,CAACV,aAAa,EAAE;UACzCmC,YAAY,EAAE,KAAK;UACnBN,UAAU,EAAEQ,SAAS;UACrBvB,oBAAoB,EAAEuB;QACxB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,MAActB,aAAaA,CAACf,aAAqB,EAAiB;IAChE,MAAMU,IAAI,GAAG,IAAI,CAACjB,UAAU,CAACkB,GAAG,CAACX,aAAa,CAAC;IAC/C,IAAI,CAACU,IAAI,EAAE;IAEX,MAAM;MAAE4B,cAAc;MAAEC;IAAgB,CAAC,GAAG,MAAM,IAAI,CAAC5C,UAAU,CAAC6C,QAAQ,CAAC;MACzEC,WAAW,EAAE/B,IAAI,CAAC+B,WAAW;MAC7BzC;IACF,CAAC,CAAC;IACF,IAAI,CAACP,UAAU,CAAC2C,MAAM,CAACpC,aAAa,EAAEsC,cAAc,CAAC;IAErD,IAAI;MACF,MAAMI,MAAM,GAAG,MAAMH,eAAe;MACpC,IAAI,CAAC9C,UAAU,CAAC2C,MAAM,CAACpC,aAAa,EAAE;QACpCqB,QAAQ,EAAEqB,MAAM,CAACC,GAAG;QACpBR,YAAY,EAAE,KAAK;QACnBS,UAAU,EAAEP,SAAS;QACrBR,UAAU,EAAEQ,SAAS;QACrBvB,oBAAoB,EAAEuB;MACxB,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOrB,KAAK,EAAE;MACd,MAAM6B,OAAO,GAAG7B,KAAK,YAAYC,KAAK,IAAID,KAAK,CAACE,IAAI,KAAK,YAAY;MACrE,IAAI,CAACzB,UAAU,CAAC2C,MAAM,CAACpC,aAAa,EAAE;QACpCmC,YAAY,EAAE,KAAK;QACnBS,UAAU,EAAEC,OAAO,GACfR,SAAS,GACTrB,KAAK,YAAYC,KAAK,GACpBD,KAAK,CAAC8B,OAAO,GACb,0BAA0B;QAChCjB,UAAU,EAAEQ,SAAS;QACrBvB,oBAAoB,EAAEuB;MACxB,CAAC,CAAC;MACF,MAAMrB,KAAK;IACb;EACF;EAEiBT,iBAAiB,GAAG,IAAAE,sBAAY,EAAC,MAAOT,aAAqB,IAAK;IACjF,IAAI,CAACV,qBAAqB,GAAG,KAAK;IAClC,MAAMoB,IAAI,GAAG,IAAI,CAACjB,UAAU,CAACkB,GAAG,CAACX,aAAa,CAAC;IAC/C,IAAI,CAACU,IAAI,EAAE;IAEX,IAAI,IAAI,CAACrB,qBAAqB,KAAK,IAAI,IAAI,IAAI,CAACA,qBAAqB,KAAKW,aAAa,EAAE;MACvF,IAAI,CAACwB,iBAAiB,CAAC,CAAC;IAC1B;IAEA,IAAI,IAAI,CAAC/B,UAAU,CAACmB,QAAQ,CAACZ,aAAa,CAAC,EAAE;MAC3C,IAAI,CAAC+C,WAAW,CAAC/C,aAAa,CAAC;MAC/B;IACF;IAEA,IAAI;MACF,IAAI,CAACN,MAAM,CAACsD,cAAc,CAAC5C,wBAAW,CAAC6C,OAAO,CAAC;MAE/C,IAAIvC,IAAI,CAACI,oBAAoB,EAAE;QAC7B,MAAMJ,IAAI,CAACI,oBAAoB;MACjC,CAAC,MAAM;QACL,MAAM,IAAI,CAACC,aAAa,CAACf,aAAa,CAAC;MACzC;MAEA,IAAI,IAAI,CAACV,qBAAqB,EAAE;QAC9B,IAAI,CAACI,MAAM,CAACsD,cAAc,CAAC5C,wBAAW,CAACgB,IAAI,CAAC;QAC5C;MACF;MAEA,IAAI,CAAC1B,MAAM,CAACsD,cAAc,CAAC5C,wBAAW,CAACgB,IAAI,CAAC;MAC5C,IAAI,CAAC2B,WAAW,CAAC/C,aAAa,CAAC;IACjC,CAAC,CAAC,OAAOgB,KAAK,EAAE;MACd,IAAIA,KAAK,YAAYC,KAAK,IAAID,KAAK,CAACE,IAAI,KAAK,YAAY,EAAE;QACzD,IAAI,CAACxB,MAAM,CAACsD,cAAc,CAAC5C,wBAAW,CAACgB,IAAI,CAAC;QAC5C;MACF;MACAD,OAAO,CAACH,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,IAAI,CAACtB,MAAM,CAACsD,cAAc,CAAC5C,wBAAW,CAACgB,IAAI,CAAC;IAC9C;EACF,CAAC,CAAC;EAEe2B,WAAW,GAAG,IAAAtC,sBAAY,EAAC,MAAOT,aAAqB,IAAK;IAC3E,IAAI,IAAI,CAACV,qBAAqB,EAAE;IAEhC,MAAMoB,IAAI,GAAG,IAAI,CAACjB,UAAU,CAACkB,GAAG,CAACX,aAAa,CAAC;IAC/C,IAAI,CAACU,IAAI,EAAEW,QAAQ,EAAE;MACnBF,OAAO,CAAC+B,IAAI,CAAC,qCAAqC,EAAElD,aAAa,CAAC;MAClE;IACF;IAEA,IAAI;MACF,IAAI,IAAI,CAACX,qBAAqB,KAAK,IAAI,IAAI,IAAI,CAACA,qBAAqB,KAAKW,aAAa,EAAE;QACvF,IAAI,CAACN,MAAM,CAACA,MAAM,EAAEyD,MAAM,CAAC,CAAC;MAC9B;MAEA,IAAI,IAAI,CAAC9D,qBAAqB,KAAKW,aAAa,IAAI,IAAI,CAACN,MAAM,CAACA,MAAM,EAAE0D,OAAO,EAAE;QAC/E,IAAI,CAAC1D,MAAM,CAACY,KAAK,CAAC,CAAC;QACnB;MACF;MAEA,IAAI,IAAI,CAACjB,qBAAqB,KAAKW,aAAa,IAAI,CAAC,IAAI,CAACN,MAAM,CAACA,MAAM,EAAE0D,OAAO,EAAE;QAChF,IAAI,CAAC1D,MAAM,CAAC2D,MAAM,CAAC,CAAC;QACpB;MACF;MAEA,IAAI,CAAChE,qBAAqB,GAAGW,aAAa;MAC1C,MAAM,IAAI,CAACN,MAAM,CAAC4D,IAAI,CAAC5C,IAAI,CAACW,QAAQ,CAAC;IACvC,CAAC,CAAC,OAAOL,KAAK,EAAE;MACdG,OAAO,CAACH,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;MAC5C,IAAI,CAACtB,MAAM,CAACsD,cAAc,CAAC5C,wBAAW,CAACgB,IAAI,CAAC;MAE5C,IAAI,CAAC3B,UAAU,CAAC2C,MAAM,CAACpC,aAAa,EAAE;QACpC4C,UAAU,EAAE5B,KAAK,YAAYC,KAAK,GAAGD,KAAK,CAAC8B,OAAO,GAAG;MACvD,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;AAACS,OAAA,CAAAnE,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@ let PlayerState = exports.PlayerState = /*#__PURE__*/function (PlayerState) {
|
|
|
16
16
|
class PlayerModel {
|
|
17
17
|
player = (0, _expoAudio.createAudioPlayer)();
|
|
18
18
|
stopped = false;
|
|
19
|
+
primedUri = null;
|
|
19
20
|
reset = (0, _effector.createEvent)();
|
|
20
21
|
setPlayerState = (0, _effector.createEvent)();
|
|
21
22
|
playbackFinished = (0, _effector.createEvent)();
|
|
@@ -39,11 +40,29 @@ class PlayerModel {
|
|
|
39
40
|
this.stopped = true;
|
|
40
41
|
if (this.player) {
|
|
41
42
|
this.player.replace('');
|
|
43
|
+
this.primedUri = null;
|
|
42
44
|
this.setPlayerState(PlayerState.IDLE);
|
|
43
45
|
} else {
|
|
44
46
|
console.warn('Cannot stop: audio player not initialized');
|
|
45
47
|
}
|
|
46
48
|
});
|
|
49
|
+
prime = (0, _effector.createEffect)(uri => {
|
|
50
|
+
if (!this.player) return;
|
|
51
|
+
if (this.primedUri === uri) return;
|
|
52
|
+
this.primedUri = uri;
|
|
53
|
+
this.player.replace(uri);
|
|
54
|
+
});
|
|
55
|
+
seek = (0, _effector.createEffect)(async seconds => {
|
|
56
|
+
if (!this.player) {
|
|
57
|
+
console.warn('Cannot seek: audio player not initialized');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (!this.player.isLoaded) {
|
|
61
|
+
console.warn('Cannot seek: audio player not loaded');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
await this.player.seekTo(seconds);
|
|
65
|
+
});
|
|
47
66
|
resume = (0, _effector.createEffect)(() => {
|
|
48
67
|
if (this.player) {
|
|
49
68
|
this.player.play();
|
|
@@ -58,7 +77,10 @@ class PlayerModel {
|
|
|
58
77
|
return;
|
|
59
78
|
}
|
|
60
79
|
this.stopped = false;
|
|
61
|
-
this.
|
|
80
|
+
if (this.primedUri !== uri) {
|
|
81
|
+
this.player.replace(uri);
|
|
82
|
+
this.primedUri = uri;
|
|
83
|
+
}
|
|
62
84
|
const waitForLoad = () => {
|
|
63
85
|
if (this.stopped) return;
|
|
64
86
|
if (this.player && this.player.isLoaded) {
|
|
@@ -91,6 +113,7 @@ class PlayerModel {
|
|
|
91
113
|
this.player.release();
|
|
92
114
|
this.player = null;
|
|
93
115
|
}
|
|
116
|
+
this.primedUri = null;
|
|
94
117
|
this.reset();
|
|
95
118
|
}
|
|
96
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_expoAudio","PlayerState","exports","PlayerModel","player","createAudioPlayer","stopped","reset","createEvent","setPlayerState","playbackFinished","$playerState","restore","IDLE","setupAudioMode","createEffect","setAudioModeAsync","playsInSilentMode","shouldPlayInBackground","interruptionMode","pause","PAUSED","console","warn","stop","replace","
|
|
1
|
+
{"version":3,"names":["_effector","require","_expoAudio","PlayerState","exports","PlayerModel","player","createAudioPlayer","stopped","primedUri","reset","createEvent","setPlayerState","playbackFinished","$playerState","restore","IDLE","setupAudioMode","createEffect","setAudioModeAsync","playsInSilentMode","shouldPlayInBackground","interruptionMode","pause","PAUSED","console","warn","stop","replace","prime","uri","seek","seconds","isLoaded","seekTo","resume","play","PLAYING","waitForLoad","unsubscribe","addListener","status","didJustFinish","remove","setTimeout","reinitialize","release","error"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/Player.model.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,6 +21,7 @@ class VoicePlayerModel {
|
|
|
21
21
|
$currentAttempt = (0, _effector.restore)(this.setCurrentAttempt, null).reset(this.reset);
|
|
22
22
|
$playerState = this.playerModel.$playerState;
|
|
23
23
|
pauseAudio = this.playerModel.pause;
|
|
24
|
+
seekAudio = this.playerModel.seek;
|
|
24
25
|
constructor(params) {
|
|
25
26
|
this.api = params.api;
|
|
26
27
|
this.downloader = new _VoiceFileDownloaderModel.VoiceFileDownloaderModel(params.api);
|
|
@@ -29,8 +30,7 @@ class VoicePlayerModel {
|
|
|
29
30
|
this.playback = new _PlaybackController.PlaybackController({
|
|
30
31
|
collection: this.collection,
|
|
31
32
|
player: this.playerModel,
|
|
32
|
-
downloader: this.downloader
|
|
33
|
-
onCurrentAttemptChange: attempt => this.setCurrentAttempt(attempt)
|
|
33
|
+
downloader: this.downloader
|
|
34
34
|
});
|
|
35
35
|
this.togglePlayPause = this.playback.togglePlayPause;
|
|
36
36
|
if (params.audios) {
|
|
@@ -41,6 +41,11 @@ class VoicePlayerModel {
|
|
|
41
41
|
stopAudio = () => {
|
|
42
42
|
this.playback.halt();
|
|
43
43
|
};
|
|
44
|
+
preloadAudio = attemptNumber => {
|
|
45
|
+
const target = attemptNumber ?? this.$currentAttempt.getState();
|
|
46
|
+
if (target === null) return;
|
|
47
|
+
return this.playback.preloadAudio(target);
|
|
48
|
+
};
|
|
44
49
|
resetPlayer = () => {
|
|
45
50
|
this.playback.releaseResources();
|
|
46
51
|
this.playback.halt();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_TranscriptionsCollection","_VoiceFileDownloaderModel","_DropdownModel","_TranslationModel","_PlayerModel","_TranscriptionsDownloaderModel","_PlaybackController","VoicePlayerModel","collection","TranscriptionsCollection","dropdown","DropdownModel","playerModel","PlayerModel","setCurrentAttempt","createEvent","reset","$currentAttempt","restore","$playerState","pauseAudio","pause","constructor","params","api","downloader","VoiceFileDownloaderModel","loader","TranscriptionsDownloaderModel","translation","TranslationModel","playback","PlaybackController","player","
|
|
1
|
+
{"version":3,"names":["_effector","require","_TranscriptionsCollection","_VoiceFileDownloaderModel","_DropdownModel","_TranslationModel","_PlayerModel","_TranscriptionsDownloaderModel","_PlaybackController","VoicePlayerModel","collection","TranscriptionsCollection","dropdown","DropdownModel","playerModel","PlayerModel","setCurrentAttempt","createEvent","reset","$currentAttempt","restore","$playerState","pauseAudio","pause","seekAudio","seek","constructor","params","api","downloader","VoiceFileDownloaderModel","loader","TranscriptionsDownloaderModel","translation","TranslationModel","playback","PlaybackController","player","togglePlayPause","audios","initializeCollectionFromAudios","setupAudioMode","stopAudio","halt","preloadAudio","attemptNumber","target","getState","resetPlayer","releaseResources","clear","clearCache","initializeWithAudios","answerAudio","isAudioLoading","get","audioLoading","getAllAttempts","getAll","reinitializePlayer","reinitialize","cleanup","release","console","warn","forEach","audio","index","audioFileId","add","_id","hasDrawing","drawing","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoicePlayer.model.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AACA,IAAAE,yBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAEA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,8BAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AAOO,MAAMQ,gBAAgB,CAAC;EACZC,UAAU,GAAG,IAAIC,kDAAwB,CAAC,CAAC;EAC3CC,QAAQ,GAAG,IAAIC,4BAAa,CAAC,CAAC;EAC9BC,WAAW,GAAG,IAAIC,wBAAW,CAAC,CAAC;EAO/BC,iBAAiB,GAAG,IAAAC,qBAAW,EAAgB,CAAC;EAChDC,KAAK,GAAG,IAAAD,qBAAW,EAAC,CAAC;EAErBE,eAAe,GAAG,IAAAC,iBAAO,EAAC,IAAI,CAACJ,iBAAiB,EAAE,IAAI,CAAC,CAACE,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC;EACzEG,YAAY,GAAG,IAAI,CAACP,WAAW,CAACO,YAAY;EAE5CC,UAAU,GAAG,IAAI,CAACR,WAAW,CAACS,KAAK;EACnCC,SAAS,GAAG,IAAI,CAACV,WAAW,CAACW,IAAI;EAIjDC,WAAWA,CAACC,MAA8B,EAAE;IAC1C,IAAI,CAACC,GAAG,GAAGD,MAAM,CAACC,GAAG;IACrB,IAAI,CAACC,UAAU,GAAG,IAAIC,kDAAwB,CAACH,MAAM,CAACC,GAAG,CAAC;IAC1D,IAAI,CAACG,MAAM,GAAG,IAAIC,4DAA6B,CAAC,IAAI,CAACtB,UAAU,EAAEiB,MAAM,CAACC,GAAG,CAAC;IAC5E,IAAI,CAACK,WAAW,GAAG,IAAIC,kCAAgB,CAAC,IAAI,CAACxB,UAAU,EAAEiB,MAAM,CAACC,GAAG,CAAC;IACpE,IAAI,CAACO,QAAQ,GAAG,IAAIC,sCAAkB,CAAC;MACrC1B,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3B2B,MAAM,EAAE,IAAI,CAACvB,WAAW;MACxBe,UAAU,EAAE,IAAI,CAACA;IACnB,CAAC,CAAC;IACF,IAAI,CAACS,eAAe,GAAG,IAAI,CAACH,QAAQ,CAACG,eAAe;IAEpD,IAAIX,MAAM,CAACY,MAAM,EAAE;MACjB,IAAI,CAACC,8BAA8B,CAACb,MAAM,CAACY,MAAM,CAAC;IACpD;IAEA,IAAI,CAACzB,WAAW,CAAC2B,cAAc,CAAC,CAAC;EACnC;EAEgBC,SAAS,GAAGA,CAAA,KAAM;IAChC,IAAI,CAACP,QAAQ,CAACQ,IAAI,CAAC,CAAC;EACtB,CAAC;EAEeC,YAAY,GAAIC,aAAsB,IAAK;IACzD,MAAMC,MAAM,GAAGD,aAAa,IAAI,IAAI,CAAC1B,eAAe,CAAC4B,QAAQ,CAAC,CAAC;IAC/D,IAAID,MAAM,KAAK,IAAI,EAAE;IACrB,OAAO,IAAI,CAACX,QAAQ,CAACS,YAAY,CAACE,MAAM,CAAC;EAC3C,CAAC;EAEeE,WAAW,GAAGA,CAAA,KAAM;IAClC,IAAI,CAACb,QAAQ,CAACc,gBAAgB,CAAC,CAAC;IAChC,IAAI,CAACd,QAAQ,CAACQ,IAAI,CAAC,CAAC;IACpB,IAAI,CAACjC,UAAU,CAACwC,KAAK,CAAC,CAAC;IACvB,IAAI,CAACjB,WAAW,CAACkB,UAAU,CAAC,CAAC;EAC/B,CAAC;EAEMC,oBAAoBA,CAACC,WAA0B,EAAE;IACtD,IAAI,CAAC3C,UAAU,CAACwC,KAAK,CAAC,CAAC;IACvB,IAAI,CAACV,8BAA8B,CAACa,WAAW,CAAC;EAClD;EAEOC,cAAcA,CAACT,aAAqB,EAAW;IACpD,OAAO,IAAI,CAACnC,UAAU,CAAC6C,GAAG,CAACV,aAAa,CAAC,EAAEW,YAAY,IAAI,KAAK;EAClE;EAEOC,cAAcA,CAAA,EAA6B;IAChD,OAAO,IAAI,CAAC/C,UAAU,CAACgD,MAAM,CAAC,CAAC;EACjC;EAEOC,kBAAkBA,CAAA,EAAG;IAC1B,IAAI,CAAC7C,WAAW,CAAC8C,YAAY,CAAC,CAAC;EACjC;EAEOC,OAAOA,CAAA,EAAG;IACf,IAAI,CAAC1B,QAAQ,CAACc,gBAAgB,CAAC,CAAC;IAChC,IAAI,CAACvC,UAAU,CAACwC,KAAK,CAAC,CAAC;IACvB,IAAI,CAAChC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACN,QAAQ,CAACM,KAAK,CAAC,CAAC;IACrB,IAAI,CAACe,WAAW,CAACf,KAAK,CAAC,CAAC;IACxB,IAAI,CAACJ,WAAW,CAACgD,OAAO,CAAC,CAAC;EAC5B;EAEQtB,8BAA8BA,CAACD,MAAqB,EAAE;IAC5D,IAAI,CAACA,MAAM,EAAE;MACXwB,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;MACxD;IACF;IACAzB,MAAM,CAAC0B,OAAO,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAK;MAC/B,MAAMtB,aAAa,GAAGsB,KAAK,GAAG,CAAC;MAC/B,IAAI,CAACD,KAAK,CAACE,WAAW,EAAE;QACtBL,OAAO,CAACC,IAAI,CAAC,oDAAoD,EAAEE,KAAK,CAAC;QACzE;MACF;MACA,IAAI,CAACxD,UAAU,CAAC2D,GAAG,CAACxB,aAAa,EAAE;QACjCA,aAAa;QACbuB,WAAW,EAAEF,KAAK,CAACE,WAAW;QAC9BE,GAAG,EAAEJ,KAAK,CAACI,GAAG;QACdC,UAAU,EAAE,CAAC,CAACL,KAAK,CAACM;MACtB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF;AAACC,OAAA,CAAAhE,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useUnit","useCallback","useEffect","useMemo","useRef","useTranslation","NO_AUDIO_BE_MESSAGE","getActiveAttempt","resolveGoogleLanguageCode","useText","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","i18n","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","answersKey","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","isActiveTranscriptLoading","isSourceSameAsTarget","language","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","current","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["useUnit","useCallback","useEffect","useMemo","useRef","useTranslation","NO_AUDIO_BE_MESSAGE","getActiveAttempt","resolveGoogleLanguageCode","useText","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","i18n","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","answersKey","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","isActiveTranscriptLoading","isSourceSameAsTarget","language","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","current","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","setCurrentAttempt","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,6 @@ export class PlaybackController {
|
|
|
9
9
|
this.collection = deps.collection;
|
|
10
10
|
this.player = deps.player;
|
|
11
11
|
this.downloader = deps.downloader;
|
|
12
|
-
this.onCurrentAttemptChange = deps.onCurrentAttemptChange;
|
|
13
12
|
this.player.playbackFinished.watch(() => this.clearCurrentAttempt());
|
|
14
13
|
}
|
|
15
14
|
togglePlayPause = attemptNumber => {
|
|
@@ -20,6 +19,35 @@ export class PlaybackController {
|
|
|
20
19
|
this.handlePlayAttempt(attemptNumber);
|
|
21
20
|
}
|
|
22
21
|
};
|
|
22
|
+
preloadAudio = createEffect(async attemptNumber => {
|
|
23
|
+
const item = this.collection.get(attemptNumber);
|
|
24
|
+
if (!item) return;
|
|
25
|
+
if (this.collection.hasAudio(attemptNumber)) {
|
|
26
|
+
this.primePlayerIfIdle(attemptNumber);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (item.audioDownloadPromise) {
|
|
30
|
+
try {
|
|
31
|
+
await item.audioDownloadPromise;
|
|
32
|
+
} catch {}
|
|
33
|
+
this.primePlayerIfIdle(attemptNumber);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
await this.downloadAudio(attemptNumber);
|
|
38
|
+
this.primePlayerIfIdle(attemptNumber);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
if (error instanceof Error && error.name === 'AbortError') return;
|
|
41
|
+
console.error('Audio preload error:', error);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
primePlayerIfIdle(attemptNumber) {
|
|
45
|
+
if (this.player.$playerState.getState() !== PlayerState.IDLE) return;
|
|
46
|
+
if (this.currentPlayingAttempt !== null) return;
|
|
47
|
+
const audioUri = this.collection.get(attemptNumber)?.audioUri;
|
|
48
|
+
if (!audioUri) return;
|
|
49
|
+
this.player.prime(audioUri);
|
|
50
|
+
}
|
|
23
51
|
halt() {
|
|
24
52
|
this.shouldPreventPlayback = true;
|
|
25
53
|
this.abortAllDownloads();
|
|
@@ -40,7 +68,6 @@ export class PlaybackController {
|
|
|
40
68
|
}
|
|
41
69
|
clearCurrentAttempt() {
|
|
42
70
|
this.currentPlayingAttempt = null;
|
|
43
|
-
this.onCurrentAttemptChange(null);
|
|
44
71
|
}
|
|
45
72
|
abortAllDownloads() {
|
|
46
73
|
this.collection.getAll().forEach(item => {
|
|
@@ -54,6 +81,37 @@ export class PlaybackController {
|
|
|
54
81
|
}
|
|
55
82
|
});
|
|
56
83
|
}
|
|
84
|
+
async downloadAudio(attemptNumber) {
|
|
85
|
+
const item = this.collection.get(attemptNumber);
|
|
86
|
+
if (!item) return;
|
|
87
|
+
const {
|
|
88
|
+
collectionItem,
|
|
89
|
+
downloadPromise
|
|
90
|
+
} = await this.downloader.download({
|
|
91
|
+
audioFileId: item.audioFileId,
|
|
92
|
+
attemptNumber
|
|
93
|
+
});
|
|
94
|
+
this.collection.update(attemptNumber, collectionItem);
|
|
95
|
+
try {
|
|
96
|
+
const result = await downloadPromise;
|
|
97
|
+
this.collection.update(attemptNumber, {
|
|
98
|
+
audioUri: result.uri,
|
|
99
|
+
audioLoading: false,
|
|
100
|
+
audioError: undefined,
|
|
101
|
+
controller: undefined,
|
|
102
|
+
audioDownloadPromise: undefined
|
|
103
|
+
});
|
|
104
|
+
} catch (error) {
|
|
105
|
+
const isAbort = error instanceof Error && error.name === 'AbortError';
|
|
106
|
+
this.collection.update(attemptNumber, {
|
|
107
|
+
audioLoading: false,
|
|
108
|
+
audioError: isAbort ? undefined : error instanceof Error ? error.message : 'Failed to download audio',
|
|
109
|
+
controller: undefined,
|
|
110
|
+
audioDownloadPromise: undefined
|
|
111
|
+
});
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
57
115
|
handlePlayAttempt = createEffect(async attemptNumber => {
|
|
58
116
|
this.shouldPreventPlayback = false;
|
|
59
117
|
const item = this.collection.get(attemptNumber);
|
|
@@ -67,46 +125,24 @@ export class PlaybackController {
|
|
|
67
125
|
}
|
|
68
126
|
try {
|
|
69
127
|
this.player.setPlayerState(PlayerState.LOADING);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
audioFileId: item.audioFileId,
|
|
75
|
-
attemptNumber
|
|
76
|
-
});
|
|
77
|
-
if (this.shouldPreventPlayback) {
|
|
78
|
-
collectionItem.controller?.abort();
|
|
79
|
-
return;
|
|
128
|
+
if (item.audioDownloadPromise) {
|
|
129
|
+
await item.audioDownloadPromise;
|
|
130
|
+
} else {
|
|
131
|
+
await this.downloadAudio(attemptNumber);
|
|
80
132
|
}
|
|
81
|
-
this.collection.update(attemptNumber, collectionItem);
|
|
82
|
-
const result = await downloadPromise;
|
|
83
133
|
if (this.shouldPreventPlayback) {
|
|
84
|
-
|
|
85
|
-
URL.revokeObjectURL(result.uri);
|
|
86
|
-
}
|
|
134
|
+
this.player.setPlayerState(PlayerState.IDLE);
|
|
87
135
|
return;
|
|
88
136
|
}
|
|
89
|
-
this.collection.update(attemptNumber, {
|
|
90
|
-
audioUri: result.uri,
|
|
91
|
-
audioLoading: false,
|
|
92
|
-
audioError: undefined,
|
|
93
|
-
controller: undefined,
|
|
94
|
-
audioDownloadPromise: undefined
|
|
95
|
-
});
|
|
96
137
|
this.player.setPlayerState(PlayerState.IDLE);
|
|
97
138
|
this.playAudioFx(attemptNumber);
|
|
98
139
|
} catch (error) {
|
|
99
|
-
console.error('Audio download error:', error);
|
|
100
140
|
if (error instanceof Error && error.name === 'AbortError') {
|
|
101
141
|
this.player.setPlayerState(PlayerState.IDLE);
|
|
102
142
|
return;
|
|
103
143
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
audioError: error instanceof Error ? error.message : 'Failed to download audio',
|
|
107
|
-
controller: undefined,
|
|
108
|
-
audioDownloadPromise: undefined
|
|
109
|
-
});
|
|
144
|
+
console.error('Audio download error:', error);
|
|
145
|
+
this.player.setPlayerState(PlayerState.IDLE);
|
|
110
146
|
}
|
|
111
147
|
});
|
|
112
148
|
playAudioFx = createEffect(async attemptNumber => {
|
|
@@ -129,7 +165,6 @@ export class PlaybackController {
|
|
|
129
165
|
return;
|
|
130
166
|
}
|
|
131
167
|
this.currentPlayingAttempt = attemptNumber;
|
|
132
|
-
this.onCurrentAttemptChange(attemptNumber);
|
|
133
168
|
await this.player.play(item.audioUri);
|
|
134
169
|
} catch (error) {
|
|
135
170
|
console.error('Error playing audio:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createEffect","PlayerState","PlaybackController","currentPlayingAttempt","shouldPreventPlayback","constructor","deps","collection","player","downloader","
|
|
1
|
+
{"version":3,"names":["createEffect","PlayerState","PlaybackController","currentPlayingAttempt","shouldPreventPlayback","constructor","deps","collection","player","downloader","playbackFinished","watch","clearCurrentAttempt","togglePlayPause","attemptNumber","playerState","$playerState","getState","PLAYING","pause","handlePlayAttempt","preloadAudio","item","get","hasAudio","primePlayerIfIdle","audioDownloadPromise","downloadAudio","error","Error","name","console","IDLE","audioUri","prime","halt","abortAllDownloads","stop","releaseResources","getAll","forEach","controller","abortDownload","startsWith","URL","revokeObjectURL","e","audioLoading","update","undefined","collectionItem","downloadPromise","download","audioFileId","result","uri","audioError","isAbort","message","playAudioFx","setPlayerState","LOADING","warn","remove","playing","resume","play"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/PlaybackController.ts"],"mappings":"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","ignoreList":[]}
|