<bgsound>标签已彻底失效,现代浏览器完全忽略它;它从未进入W3C标准,仅IE私有支持,HTML5中必须用<audio>替代并遵循自动播放策略。

<bgsound> 标签早就不能用了,不是“不推荐”,是现代浏览器根本不会解析它。
它只在 IE 3–IE 9 的私有实现中起效,且没有标准 DOM 接口、无法控制播放状态、不触发事件、不支持音频格式协商——连 preload 或 loop 这种基础属性都靠 JS 模拟。2010 年后所有主流浏览器(Chrome、Firefox、Safari、Edge)均已移除对它的识别。
为什么 <bgsound> 会被彻底废弃
它不是被“替代”,而是从一开始就没进过 HTML 标准:W3C 从未将其纳入任何规范草案。<embed> 和早期 <object> 虽也不优雅,但至少有扩展能力;而 <bgsound> 是 IE 独有的渲染层 hack,连基本的 MIME 类型校验都不做,直接硬塞 WAV 文件头就开播。
- 无音频上下文,无法与 Web Audio API 交互
- 不响应
document.hidden,切页后仍在后台发声 - 无法通过 CSS 控制显示/隐藏(它本就不渲染)
- WAV 以外格式(如 MP3)依赖系统解码器,Windows 95/98 下常静音
<audio> 替代时必须处理的兼容断点
IE 9 支持 <audio> 但仅限 WAV,且需加 type="audio/wav";IE 10+ 才支持 MP3/OGG。若仍需覆盖旧 IE 用户(比如内网系统),不要试图 polyfill <bgsound>,而应降级为 JS 检测 + Flash fallback(如 SoundManager2),或直接放弃音频。
- 用
canPlayType()判断 MP3 支持:audio.canPlayType('audio/mpeg')返回"probably"或"maybe" - 避免写
<audio autoplay>:移动端 Safari/Chrome 默认静音,会触发拒绝策略 - 背景音乐建议设
loop+muted+volume=0.3,再由用户主动点击后取消静音
SMI 歌词同步失效的根本原因
你看到的那段 aboutplayer.closedCaption.SAMIFileName 代码,依赖的是 Windows Media Player ActiveX 插件(WMPlayer.OCX),而该插件在 IE 11 中已被禁用,Edge 更是彻底移除 COM 组件支持。SMI 文件本身没废,但加载它的容器已经消失。
- 现代方案只能用 WebVTT(
<track kind="subtitles">)配合<audio>的textTracksAPI - SMI 转 WebVTT 可用开源工具
smi2vtt,注意时间戳格式差异(SMI 用MM:SS:FF,WebVTT 用HH:MM:SS.mmm) - 歌词滚动需监听
timeupdate事件,不能依赖closedCaption对象



















