Files

35 lines
1.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getWaveAudioEncoder = void 0;
const convert_audiodata_1 = require("./convert-audiodata");
const getWaveAudioEncoder = ({ onChunk, controller, config, ioSynchronizer, }) => {
return {
close: () => {
return Promise.resolve();
},
encode: (unconvertedAudioData) => {
if (controller._internals._mediaParserController._internals.signal.aborted) {
return Promise.resolve();
}
const audioData = (0, convert_audiodata_1.convertAudioData)({
audioData: unconvertedAudioData,
newSampleRate: config.sampleRate,
format: 's16',
});
unconvertedAudioData.close();
const chunk = {
timestamp: audioData.timestamp,
duration: audioData.duration,
type: 'key',
copyTo: (destination) => audioData.copyTo(destination, { planeIndex: 0 }),
byteLength: audioData.allocationSize({ planeIndex: 0 }),
};
return onChunk(chunk);
},
flush: () => Promise.resolve(),
waitForFinish: () => Promise.resolve(),
ioSynchronizer,
};
};
exports.getWaveAudioEncoder = getWaveAudioEncoder;