@magmamath/students-features 0.9.107-rc.26 → 0.9.107-rc.27
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/voiceRecord/helpers.js +15 -1
- package/dist/commonjs/features/voiceRecord/helpers.js.map +1 -1
- package/dist/module/features/voiceRecord/helpers.js +15 -1
- package/dist/module/features/voiceRecord/helpers.js.map +1 -1
- package/dist/typescript/commonjs/features/voiceRecord/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/voiceRecord/helpers.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/voiceRecord/helpers.ts +19 -2
|
@@ -73,7 +73,8 @@ const getAudioDurationMs = (fileUri, externalPlayer) => {
|
|
|
73
73
|
return new Promise((resolve, reject) => {
|
|
74
74
|
const subscription = player.addListener('playbackStatusUpdate', () => {
|
|
75
75
|
console.log('player.duration: ', player.duration);
|
|
76
|
-
|
|
76
|
+
// Chrome 93 and some older browsers return Infinity until audio is fully loaded
|
|
77
|
+
if (player.duration !== undefined && player.duration > 0 && Number.isFinite(player.duration)) {
|
|
77
78
|
subscription.remove();
|
|
78
79
|
|
|
79
80
|
// player.duration is in seconds (e.g., 1.234567)
|
|
@@ -85,6 +86,19 @@ const getAudioDurationMs = (fileUri, externalPlayer) => {
|
|
|
85
86
|
resolve(durationMs);
|
|
86
87
|
}
|
|
87
88
|
});
|
|
89
|
+
|
|
90
|
+
// Workaround for Chrome returning Infinity: seek to end to force duration calculation
|
|
91
|
+
if (_reactNativeUi.IS_WEB) {
|
|
92
|
+
setTimeout(() => {
|
|
93
|
+
try {
|
|
94
|
+
// Seeking to a large value forces Chrome to calculate the actual duration
|
|
95
|
+
player.seekTo(1e10);
|
|
96
|
+
player.seekTo(0);
|
|
97
|
+
} catch (e) {
|
|
98
|
+
// Ignore seek errors
|
|
99
|
+
}
|
|
100
|
+
}, 100);
|
|
101
|
+
}
|
|
88
102
|
setTimeout(() => {
|
|
89
103
|
subscription.remove();
|
|
90
104
|
if (isInternalPlayer) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeUi","require","_expoAudio","formatDuration","ms","totalSeconds","Math","floor","minutes","seconds","toString","padStart","exports","ensureRecordingPermissions","status","getRecordingPermissionsAsync","granted","requestRecordingPermissionsAsync","getAvailableInputsWeb","navigator","mediaDevices","enumerateDevices","devices","filter","d","kind","getAvailableInputs","recorder","IS_WEB","IS_MOBILE","addAudioInputsListenerWeb","callback","addEventListener","handleDeviceChange","removeEventListener","getAudioDurationMs","fileUri","externalPlayer","Promise","resolve","undefined","console","log","player","createAudioPlayer","isInternalPlayer","replace","reject","subscription","addListener","duration","remove","durationMs","round","setTimeout","Error","generateAudioFormData","audioFileUri","fileName","formData","FormData","response","fetch","blob","filename","type","append","file","uri","name","uploadAudioFileRequestGenerator","audioFileFormData","api","controller","AbortController","uploadAudio","uploadAudioFile","signal"],"sourceRoot":"../../../../src","sources":["features/voiceRecord/helpers.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_reactNativeUi","require","_expoAudio","formatDuration","ms","totalSeconds","Math","floor","minutes","seconds","toString","padStart","exports","ensureRecordingPermissions","status","getRecordingPermissionsAsync","granted","requestRecordingPermissionsAsync","getAvailableInputsWeb","navigator","mediaDevices","enumerateDevices","devices","filter","d","kind","getAvailableInputs","recorder","IS_WEB","IS_MOBILE","addAudioInputsListenerWeb","callback","addEventListener","handleDeviceChange","removeEventListener","getAudioDurationMs","fileUri","externalPlayer","Promise","resolve","undefined","console","log","player","createAudioPlayer","isInternalPlayer","replace","reject","subscription","addListener","duration","Number","isFinite","remove","durationMs","round","setTimeout","seekTo","e","Error","generateAudioFormData","audioFileUri","fileName","formData","FormData","response","fetch","blob","filename","type","append","file","uri","name","uploadAudioFileRequestGenerator","audioFileFormData","api","controller","AbortController","uploadAudio","uploadAudioFile","signal"],"sourceRoot":"../../../../src","sources":["features/voiceRecord/helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -65,7 +65,8 @@ export const getAudioDurationMs = (fileUri, externalPlayer) => {
|
|
|
65
65
|
return new Promise((resolve, reject) => {
|
|
66
66
|
const subscription = player.addListener('playbackStatusUpdate', () => {
|
|
67
67
|
console.log('player.duration: ', player.duration);
|
|
68
|
-
|
|
68
|
+
// Chrome 93 and some older browsers return Infinity until audio is fully loaded
|
|
69
|
+
if (player.duration !== undefined && player.duration > 0 && Number.isFinite(player.duration)) {
|
|
69
70
|
subscription.remove();
|
|
70
71
|
|
|
71
72
|
// player.duration is in seconds (e.g., 1.234567)
|
|
@@ -77,6 +78,19 @@ export const getAudioDurationMs = (fileUri, externalPlayer) => {
|
|
|
77
78
|
resolve(durationMs);
|
|
78
79
|
}
|
|
79
80
|
});
|
|
81
|
+
|
|
82
|
+
// Workaround for Chrome returning Infinity: seek to end to force duration calculation
|
|
83
|
+
if (IS_WEB) {
|
|
84
|
+
setTimeout(() => {
|
|
85
|
+
try {
|
|
86
|
+
// Seeking to a large value forces Chrome to calculate the actual duration
|
|
87
|
+
player.seekTo(1e10);
|
|
88
|
+
player.seekTo(0);
|
|
89
|
+
} catch (e) {
|
|
90
|
+
// Ignore seek errors
|
|
91
|
+
}
|
|
92
|
+
}, 100);
|
|
93
|
+
}
|
|
80
94
|
setTimeout(() => {
|
|
81
95
|
subscription.remove();
|
|
82
96
|
if (isInternalPlayer) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IS_MOBILE","IS_WEB","createAudioPlayer","getRecordingPermissionsAsync","requestRecordingPermissionsAsync","formatDuration","ms","totalSeconds","Math","floor","minutes","seconds","toString","padStart","ensureRecordingPermissions","status","granted","getAvailableInputsWeb","navigator","mediaDevices","enumerateDevices","devices","filter","d","kind","getAvailableInputs","recorder","addAudioInputsListenerWeb","callback","addEventListener","handleDeviceChange","removeEventListener","getAudioDurationMs","fileUri","externalPlayer","Promise","resolve","undefined","console","log","player","isInternalPlayer","replace","reject","subscription","addListener","duration","remove","durationMs","round","setTimeout","Error","generateAudioFormData","audioFileUri","fileName","formData","FormData","response","fetch","blob","filename","type","append","file","uri","name","uploadAudioFileRequestGenerator","audioFileFormData","api","controller","AbortController","uploadAudio","uploadAudioFile","signal"],"sourceRoot":"../../../../src","sources":["features/voiceRecord/helpers.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["IS_MOBILE","IS_WEB","createAudioPlayer","getRecordingPermissionsAsync","requestRecordingPermissionsAsync","formatDuration","ms","totalSeconds","Math","floor","minutes","seconds","toString","padStart","ensureRecordingPermissions","status","granted","getAvailableInputsWeb","navigator","mediaDevices","enumerateDevices","devices","filter","d","kind","getAvailableInputs","recorder","addAudioInputsListenerWeb","callback","addEventListener","handleDeviceChange","removeEventListener","getAudioDurationMs","fileUri","externalPlayer","Promise","resolve","undefined","console","log","player","isInternalPlayer","replace","reject","subscription","addListener","duration","Number","isFinite","remove","durationMs","round","setTimeout","seekTo","e","Error","generateAudioFormData","audioFileUri","fileName","formData","FormData","response","fetch","blob","filename","type","append","file","uri","name","uploadAudioFileRequestGenerator","audioFileFormData","api","controller","AbortController","uploadAudio","uploadAudioFile","signal"],"sourceRoot":"../../../../src","sources":["features/voiceRecord/helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/voiceRecord/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EAId,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,MAK3C,CAAA;AAED,eAAO,MAAM,0BAA0B,wBAStC,CAAA;AASD,eAAO,MAAM,kBAAkB,aAAoB,aAAa,uEAQ/D,CAAA;AAED,eAAO,MAAM,yBAAyB,aAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,eAiBvF,CAAA;AACD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YACpB,MAAM,mBACE,WAAW,KAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/voiceRecord/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EAId,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,MAK3C,CAAA;AAED,eAAO,MAAM,0BAA0B,wBAStC,CAAA;AASD,eAAO,MAAM,kBAAkB,aAAoB,aAAa,uEAQ/D,CAAA;AAED,eAAO,MAAM,yBAAyB,aAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,eAiBvF,CAAA;AACD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YACpB,MAAM,mBACE,WAAW,KAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAwD5B,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,qBAAqB,4CAI/B,2BAA2B,KAAG,OAAO,CAAC,QAAQ,CA+BhD,CAAA;AAED,eAAO,MAAM,+BAA+B,sBAAuB,QAAQ,OAAO,QAAQ;;;;;;;CAgBzF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/voiceRecord/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EAId,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,MAK3C,CAAA;AAED,eAAO,MAAM,0BAA0B,wBAStC,CAAA;AASD,eAAO,MAAM,kBAAkB,aAAoB,aAAa,uEAQ/D,CAAA;AAED,eAAO,MAAM,yBAAyB,aAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,eAiBvF,CAAA;AACD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YACpB,MAAM,mBACE,WAAW,KAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/voiceRecord/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EAId,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,MAK3C,CAAA;AAED,eAAO,MAAM,0BAA0B,wBAStC,CAAA;AASD,eAAO,MAAM,kBAAkB,aAAoB,aAAa,uEAQ/D,CAAA;AAED,eAAO,MAAM,yBAAyB,aAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,eAiBvF,CAAA;AACD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YACpB,MAAM,mBACE,WAAW,KAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAwD5B,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,qBAAqB,4CAI/B,2BAA2B,KAAG,OAAO,CAAC,QAAQ,CA+BhD,CAAA;AAED,eAAO,MAAM,+BAA+B,sBAAuB,QAAQ,OAAO,QAAQ;;;;;;;CAgBzF,CAAA"}
|
package/package.json
CHANGED
|
@@ -84,8 +84,12 @@ export const getAudioDurationMs = (
|
|
|
84
84
|
return new Promise((resolve, reject) => {
|
|
85
85
|
const subscription = player.addListener('playbackStatusUpdate', () => {
|
|
86
86
|
console.log('player.duration: ', player.duration)
|
|
87
|
-
|
|
88
|
-
if (
|
|
87
|
+
// Chrome 93 and some older browsers return Infinity until audio is fully loaded
|
|
88
|
+
if (
|
|
89
|
+
player.duration !== undefined &&
|
|
90
|
+
player.duration > 0 &&
|
|
91
|
+
Number.isFinite(player.duration)
|
|
92
|
+
) {
|
|
89
93
|
subscription.remove()
|
|
90
94
|
|
|
91
95
|
// player.duration is in seconds (e.g., 1.234567)
|
|
@@ -99,6 +103,19 @@ export const getAudioDurationMs = (
|
|
|
99
103
|
}
|
|
100
104
|
})
|
|
101
105
|
|
|
106
|
+
// Workaround for Chrome returning Infinity: seek to end to force duration calculation
|
|
107
|
+
if (IS_WEB) {
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
try {
|
|
110
|
+
// Seeking to a large value forces Chrome to calculate the actual duration
|
|
111
|
+
player.seekTo(1e10)
|
|
112
|
+
player.seekTo(0)
|
|
113
|
+
} catch (e) {
|
|
114
|
+
// Ignore seek errors
|
|
115
|
+
}
|
|
116
|
+
}, 100)
|
|
117
|
+
}
|
|
118
|
+
|
|
102
119
|
setTimeout(() => {
|
|
103
120
|
subscription.remove()
|
|
104
121
|
|