Add cleanup for audio segment object URLs

This commit is contained in:
Anthony
2025-11-27 21:18:30 +08:00
parent 7f75b44af1
commit 8e1dff0bb3
2 changed files with 65 additions and 13 deletions

View File

@@ -0,0 +1,24 @@
const trackedUrls = new Set<string>();
export const createTrackedObjectUrl = (blob: Blob): string => {
const url = URL.createObjectURL(blob);
trackedUrls.add(url);
return url;
};
export const revokeTrackedObjectUrl = (url?: string) => {
if (!url) return;
if (trackedUrls.has(url)) {
trackedUrls.delete(url);
}
URL.revokeObjectURL(url);
};
export const revokeMultipleObjectUrls = (urls: (string | undefined)[]) => {
urls.forEach(revokeTrackedObjectUrl);
};
export const revokeAllTrackedObjectUrls = () => {
trackedUrls.forEach(url => URL.revokeObjectURL(url));
trackedUrls.clear();
};