fix: respect caller-provided waveform for PTT audio messages (#322)
* fix: respect caller-provided waveform for PTT audio messages When sending PTT audio with an explicit waveform, Baileys unconditionally overwrites it with getAudioWaveform() which returns undefined when audio-decode is not installed — resulting in a flat line on WhatsApp. Now only invokes getAudioWaveform() when no waveform is already provided, matching the existing pattern used for jpegThumbnail (line 241). Validated via CDP + Frida interception: WhatsApp waveform format is 64 bytes Uint8Array, values 0-99, byte-for-byte identical between Android (audio_data table) and WA Web (model-storage IDB). Ref: WhiskeySockets/Baileys#2443 Co-Authored-By: Renato Alcara
This commit is contained in:
@@ -239,7 +239,7 @@ export const prepareWAMessageMedia = async (
|
||||
const requiresDurationComputation = mediaType === 'audio' && typeof uploadData.seconds === 'undefined'
|
||||
const requiresThumbnailComputation =
|
||||
(mediaType === 'image' || mediaType === 'video') && typeof uploadData['jpegThumbnail'] === 'undefined'
|
||||
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true
|
||||
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true && typeof uploadData.waveform === 'undefined'
|
||||
const requiresAudioBackground = options.backgroundColor && mediaType === 'audio' && uploadData.ptt === true
|
||||
const requiresOriginalForSomeProcessing = requiresDurationComputation || requiresThumbnailComputation
|
||||
const { mediaKey, encFilePath, originalFilePath, fileEncSha256, fileSha256, fileLength } = await encryptedStream(
|
||||
@@ -297,7 +297,7 @@ export const prepareWAMessageMedia = async (
|
||||
logger?.debug('computed audio duration')
|
||||
}
|
||||
|
||||
if (requiresWaveformProcessing) {
|
||||
if (requiresWaveformProcessing && !uploadData.waveform) {
|
||||
uploadData.waveform = await getAudioWaveform(filePath, logger)
|
||||
logger?.debug('processed waveform')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user