跳到主要内容

最佳实践

MeshStream 不替换业务播放器或 CDN。生产接入应遵循四项原则:每次播放创建独立会话;始终使用 SDK 返回的播放地址;在内容切换和生命周期结束时释放会话;在上线前验证加速不可用时的正常播放路径。

所有平台通用​

使用稳定的内容标识​

播放地址含临时签名、Token 或追踪参数时,显式传入稳定的 contentId,例如 movie-2026-001 或 live-channel-main。不要把完整签名 URL 当作内容身份,否则同一内容无法稳定识别和复用。

服务端调度与降级验收​

SDK 不需要传入区域代码。服务端根据 SDK Key 的租户归属和请求网络完成服务调度,业务代码不应自行拼接内部服务地址。上线前应完成一次降级验收:确认控制台出现会话,确认播放器使用 playbackUrl,再关闭 P2P 或阻断加速连接,验证媒体仍能通过现有 CDN 完整播放。

分片长度决定起播命中速度​

HLS/DASH 的分片时长应结合播放器缓冲策略、直播延迟目标和 CDN 配置确定。通常可从约 1--2 秒开始评估;分片过长会延后共享建立,分片过短则可能增加请求和调度开销。Web SDK 的 DASH 点播可配置初始等待时间;直播场景应优先保证及时起播。需要关闭点播初始等待时,可显式设置 httpDownloadInitialTimeoutMs: 0。

按平台实践​

绑定已有播放器​

attach 应绑定已有的 <video> 元素。页面切换、React 组件卸载或内容切换时,先释放旧会话,再创建新会话,避免多个会话同时占用连接和缓存。

const session = attach({
key: "your_sdk_key",
url: signedM3u8Url,
contentId: "movie-2026-001",
video,
});

await session.start();
// React useEffect cleanup、路由切换或切换视频时执行
session.dispose();

播放器边界: HLS/DASH 清单解析、ABR 和渲染仍由现有播放器负责。

认证处理: 使用 originHeaders 访问源站,不要将鉴权头暴露给 Peer。

验收注意: iOS Safari 没有 MSE 时使用原生 HLS,不能以 Web P2P 命中率作为验收条件。多个视频实例必须各自创建和释放会话。

常见遗漏​

现象优先检查
一直是 CDNKey、HTTPS/WSS 网络权限、内容标识、可用 Peer,以及服务端 Tracker/ICE 调度状态
控制台没有统计是否使用 playbackUrl、会话是否正常结束、是否过早释放应用进程
切换内容后异常旧会话是否已释放,新内容是否创建了独立会话
签名地址无法聚合是否传入稳定 contentId,而不是完整签名 URL

需要更具体的 SDK 参数和 API,请查看 Web、Android、iOS 或 Windows 文档。