decord/source/modules/voice_messages/native/VoiceMessageUtils.tsx

126 lines
4.9 KiB
TypeScript
Raw Normal View History

2026-07-27 11:26:19 +00:00
// Module ID: 11354
// Function ID: 88245
2026-07-20 16:05:17 +00:00
// Name: generateBase64EncodedWaveform
2026-07-27 11:26:19 +00:00
// Dependencies: [5, 4178, 11091, 11092, 653, 3, 11355, 206, 22, 4228, 675, 4100, 477, 2]
2026-07-20 16:05:17 +00:00
// Exports: emitVoiceMessageRecorded, endAudioRecording, startAudioRecording, triggerHaptic
2026-07-27 11:26:19 +00:00
// Module 11354 (generateBase64EncodedWaveform)
2026-07-23 10:11:24 +00:00
import timestamp from "timestamp";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import VoiceMessageRecordingStatus from "VoiceMessageRecordingStatus";
import VoiceMessageAnimationState from "VoiceMessageAnimationState";
import { AnalyticEvents } from "ME";
import importDefaultResult from "VoiceMessageAnimationState";
import importDefaultResult1 from "apply";
let closure_10;
let closure_11;
let closure_12;
let closure_13;
let closure_14;
let closure_15;
let closure_16;
let closure_17;
let closure_5;
let closure_6;
let closure_7;
let closure_8;
let closure_9;
const require = arg1;
2026-07-20 16:05:17 +00:00
function generateBase64EncodedWaveform(waveform) {
let arr = waveform;
if (waveform.length > closure_16) {
2026-07-27 11:26:19 +00:00
arr = importDefault(11355)(waveform, tmp);
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
const mapped = arr.map((arg0) => Math.min(arg0, outer1_13));
2026-07-20 16:05:17 +00:00
const uint8Array = new Uint8Array(mapped);
2026-07-23 10:11:24 +00:00
return importDefault(206).fromByteArray(uint8Array);
2026-07-20 16:05:17 +00:00
}
function _startAudioRecording() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
return obj(...arguments);
}
function resetAudioRecording() {
2026-07-23 10:11:24 +00:00
mediaEngine = mediaEngine.getMediaEngine();
2026-07-25 08:10:48 +00:00
mediaEngine.removeListener(require(4228) /* getMediaEngineImpl */.MediaEngineEvent.VoiceActivity, closure_21);
2026-07-20 16:05:17 +00:00
callback3();
}
function stopAndGetAudioRecording() {
callback4(null);
callback5(null);
const waveform = store.getState().waveform;
let closure_0 = generateBase64EncodedWaveform(waveform.map((arg0) => {
let tmp;
[tmp] = arg0;
return tmp;
}));
return new Promise((arg0) => {
let closure_0 = arg0;
2026-07-23 10:11:24 +00:00
const mediaEngine = outer1_4.getMediaEngine();
2026-07-20 16:05:17 +00:00
const result = mediaEngine.stopLocalAudioRecording((filename) => {
2026-07-23 10:11:24 +00:00
callback({ filename, durationSecs: arg1 / 1000, waveform: callback });
2026-07-20 16:05:17 +00:00
});
});
}
function _endAudioRecording() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
return obj(...arguments);
}
function stopAndCacheAudioRecording() {
return _stopAndCacheAudioRecording(...arguments);
}
function _stopAndCacheAudioRecording() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
return obj(...arguments);
}
2026-07-23 10:11:24 +00:00
({ addVoiceMessageWave: closure_5, resetVoiceMessageState: closure_6, setSavedVoiceMessageUploadData: closure_7, setVoiceMessageRecordingId: closure_8, setVoiceMessageRecordingState: closure_9, setVoiceMessageStartTimeMillis: closure_10, useVoiceMessagesUIStore: closure_11, VoiceMessageRecordingStatus: closure_12 } = VoiceMessageRecordingStatus);
({ WAVEFORM_WAVE_MAX_VALUE: closure_13, VOICE_RECORDING_MIN_DB: closure_14, VOICE_RECORDING_MAX_DB: closure_15, WAVEFORM_MAX_SAMPLES: closure_16, VOICE_RECORDING_MAX_DURATION_MILLIS: closure_17 } = VoiceMessageAnimationState);
let c19 = null;
2026-07-20 16:05:17 +00:00
importDefaultResult = new importDefaultResult("VoiceMessages");
2026-07-23 10:11:24 +00:00
let closure_21 = require("apply").throttle((arg0) => {
2026-07-20 16:05:17 +00:00
const state = store.getState();
if (null != state.startTimeMillis) {
callback2(closure_13 * ((arg0 - closure_14) / (closure_15 - closure_14)));
let tmp8 = null == state.savedVoiceMessageUploadData;
if (tmp8) {
const _performance = performance;
tmp8 = performance.now() - state.startTimeMillis >= closure_17;
}
if (tmp8) {
stopAndCacheAudioRecording();
}
}
}, 100);
2026-07-23 10:11:24 +00:00
let result = require("VoiceMessageRecordingStatus").fileFinishedImporting("modules/voice_messages/native/VoiceMessageUtils.tsx");
2026-07-20 16:05:17 +00:00
export { generateBase64EncodedWaveform };
export const startAudioRecording = function startAudioRecording(nowResult) {
return _startAudioRecording(...arguments);
};
export const endAudioRecording = function endAudioRecording() {
return _endAudioRecording(...arguments);
};
export { stopAndCacheAudioRecording };
export const emitVoiceMessageRecorded = function emitVoiceMessageRecorded(CANCELLED_DURATION, durationSecs, startTimeMillis) {
if (null != startTimeMillis) {
2026-07-23 10:11:24 +00:00
let obj = importDefault(675);
2026-07-20 16:05:17 +00:00
obj = { recording_start_timestamp: startTimeMillis };
const _Date = Date;
obj.recording_stop_timestamp = Date.now();
obj.duration_secs = durationSecs;
obj.result = CANCELLED_DURATION;
2026-07-23 10:11:24 +00:00
obj.initialize_secs = c19;
2026-07-20 16:05:17 +00:00
obj.track(AnalyticEvents.VOICE_MESSAGE_RECORDED, obj);
2026-07-23 10:11:24 +00:00
c19 = null;
2026-07-20 16:05:17 +00:00
}
};
export const triggerHaptic = function triggerHaptic() {
2026-07-25 08:10:48 +00:00
const obj = require(4100) /* getAndroidLightImpactEffect */;
2026-07-23 10:11:24 +00:00
const obj2 = require(477) /* set */;
2026-07-25 08:10:48 +00:00
const HapticFeedbackTypes = require(4100) /* getAndroidLightImpactEffect */.HapticFeedbackTypes;
2026-07-23 10:11:24 +00:00
const result = obj.triggerHapticFeedback(require(477) /* set */.isAndroid() ? HapticFeedbackTypes.IMPACT_LIGHT : HapticFeedbackTypes.IMPACT_MEDIUM);
2026-07-20 16:05:17 +00:00
};