localfontaccess 并非标准 api,实际应使用 chrome 支持的 web font access api(window.querylocalfonts()),可在用户授权后获取本地字体元数据,但不提供字体文件,且仅限 chromium 桌面版支持。

LocalFontAccess 并不是 HTML5 的标准 API,目前(截至 2024 年)不存在名为 LocalFontAccess 的 Web 标准接口。你可能混淆了以下两个真实但不同的概念:
✅
window.queryLocalFonts():这是 Chrome 88+(桌面版)开始实验性支持的 Web Font Access API(属于 Web Capabilities,非 HTML5 原生部分),允许网页在用户明确授权后读取系统已安装的字体列表及元数据(如 family、postscriptName、style 等),但不提供字体文件二进制内容或直接加载能力。❌
LocalFontAccess:这不是任何浏览器实现或规范中的 API 名称,也不是 W3C 或 WHATWG 标准的一部分,搜索 MDN、Chromium docs 或 CanIUse 均无此条目。
✅ 正确路径:用 Web Font Access API 支持更多字体(适用于网页版视频剪辑工具)
? 1. 确认浏览器支持与用户授权
Web Font Access 是受保护的特性,需满足:
- 用户在 安全上下文(HTTPS 或 localhost)中访问;
- 用户主动触发(如点击“加载本地字体”按钮),不能自动调用;
- 首次调用会弹出系统级权限提示(Chrome 中显示为“允许网站查看您设备上的字体”)。
async function loadLocalFonts() {
try {
const fonts = await window.queryLocalFonts();
console.log(`找到 ${fonts.length} 个本地字体`);
return fonts;
} catch (err) {
console.warn("未获得字体访问权限或不支持该 API", err);
}
}
⚠️ 注意:Safari、Firefox 当前(2024)不支持该 API;仅 Chromium 系(Chrome、Edge、Brave)桌面版可用。
Teleport tsh SSH (Identity-First SSH Access, no passwords/static keys)下载使用tbot机器ID身份文件配合tsh CLI,通过Teleport访问控制SSH登录托管主机或执行远程命令。
? 2. 获取字体信息后,如何用于视频剪辑工具?
该 API 返回的是 FontData 对象数组(含 family、fullName、postscriptName、style、weight 等),但不返回 .ttf/.woff 字体文件本身。因此:
- ✅ 可用于:在字幕/文本图层的字体下拉菜单中动态列出用户本机可用字体;
- ✅ 可结合 CSS
@font-face+local()源,让浏览器尝试从系统加载(需字体名完全匹配); - ❌ 不可用于:将字体文件上传、转成 base64、或在 Canvas/WebGL 中直接渲染未声明的字体(除非已通过
<style></style>或@font-face显式引入)。
示例:动态注入 local() 引用(提升渲染可靠性)
fonts.forEach(font => {
const style = document.createElement('style');
style.textContent = `
@font-face {
font-family: 'local-${font.postscriptName}';
src: local('${font.fullName}'), local('${font.postscriptName}');
/* fallback to generic if local fails */
}
`;
document.head.appendChild(style);
});
然后在字幕样式中使用:
.subtitle {
font-family: 'local-HelveticaNeue-Bold', 'Helvetica Neue', sans-serif;
}
? 3. 实际限制与应对建议
- 字体名称匹配敏感:
local('xxx')必须与系统注册的全名/PostScript 名完全一致,大小写、空格、连字符均影响成败; - 无法获取字体文件 → 不能用于导出带嵌入字体的视频(如 MP4 字幕轨);
- 若需确保跨设备一致性,仍应搭配 Web Fonts(Google Fonts / 自托管 WOFF2)作为 fallback;
- 对设计师高频需求(如思源黑体、霞鹜文楷等),建议预置常用开源字体的 CDN 链接,在检测到缺失时一键加载。
✅ 替代方案(兼容性更广)
若目标是“支持更多字体”,而非“必须用本地字体”,推荐组合策略:
- 使用 Google Fonts API 动态加载热门字体(支持子集、WOFF2);
- 允许用户上传
.ttf/.otf文件(通过<input type="file">+FileReader),解析name表后注入@font-face(注意:仅限当前页面会话,且需处理 CORS 和 license 合规性); - 基于 opentype.js 解析上传字体的元数据,辅助预览和样式控制。
不复杂但容易忽略:字体支持的关键不在“能不能读”,而在“能不能可靠用”。Web Font Access 是一个有边界的能力——它帮你发现字体,但不替你加载、不替你渲染、也不替你导出。真正让剪辑工具字体丰富的,是清晰的字体管理逻辑 + 合理的 fallback 机制 + 用户友好的授权引导。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











