function isBenignPlayAbort(err: unknown): boolean {
    if (err instanceof DOMException && err.name === 'AbortError') return true
    if (err && typeof err === 'object' && 'name' in err) {
        return (err as { name: string }).name === 'AbortError'
    }
    return false
}

/**
 * 呼叫 video.play() 並忽略常見的 AbortError（元素卸載、src 變更、新 load 中斷 play 等）。
 */
export function safeVideoPlay(video: HTMLVideoElement): void {
    try {
        const result = video.play()
        if (result != null && typeof result.catch === 'function') {
            void result.catch((err: unknown) => {
                if (!isBenignPlayAbort(err)) {
                    // 靜音自動播放策略等仍可能失敗，不需拋到 console
                }
            })
        }
    } catch {
        // ignore sync throws
    }
}
