35 lines
1.3 KiB
JavaScript
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;
|