2024-03-13 13:37:18 +00:00
|
|
|
/*
|
|
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
2023-11-26 07:15:24 +00:00
|
|
|
export default async function hasAudio(media: HTMLMediaElement) {
|
|
|
|
const cloned = media.cloneNode() as HTMLMediaElement;
|
|
|
|
cloned.muted = (cloned as typeof cloned & Partial<HTMLVideoElement>).playsInline = true;
|
|
|
|
cloned.play();
|
|
|
|
await new Promise((resolve) => cloned.addEventListener('playing', resolve));
|
|
|
|
const result = !!(cloned as any).audioTracks?.length || (cloned as any).mozHasAudio || !!(cloned as any).webkitAudioDecodedByteCount;
|
|
|
|
cloned.remove();
|
|
|
|
return result;
|
|
|
|
}
|