fix ffmpeg.exit()

This commit is contained in:
louielang 2022-04-19 10:37:56 +08:00
parent fcc312abd3
commit 0191cdf480

View File

@ -21,6 +21,7 @@ module.exports = (_options = {}) => {
let Core = null; let Core = null;
let ffmpeg = null; let ffmpeg = null;
let runResolve = null; let runResolve = null;
let runReject = null;
let running = false; let running = false;
let progress = optProgress; let progress = optProgress;
const detectCompletion = (message) => { const detectCompletion = (message) => {
@ -126,9 +127,10 @@ module.exports = (_options = {}) => {
throw Error('ffmpeg.wasm can only run one command at a time'); throw Error('ffmpeg.wasm can only run one command at a time');
} else { } else {
running = true; running = true;
return new Promise((resolve) => { return new Promise((resolve, reject) => {
const args = [...defaultArgs, ..._args].filter((s) => s.length !== 0); const args = [...defaultArgs, ..._args].filter((s) => s.length !== 0);
runResolve = resolve; runResolve = resolve;
runReject = reject;
ffmpeg(...parseArgs(Core, args)); ffmpeg(...parseArgs(Core, args));
}); });
} }
@ -178,10 +180,18 @@ module.exports = (_options = {}) => {
throw NO_LOAD; throw NO_LOAD;
} else { } else {
running = false; running = false;
try {
Core.exit(1); Core.exit(1);
} catch (err) {
if (runReject) {
runReject(err);
}
} finally {
Core = null; Core = null;
ffmpeg = null; ffmpeg = null;
runResolve = null; runResolve = null;
runReject = null;
}
} }
}; };