本文将指导您在使用 Web 拉流 SDK (VePlayer) 接入启用了 URL 鉴权的直播系统时,如何识别并处理因拉流地址过期导致的播放失败问题,从而保障观众的观看体验。
本文档适用于最新版本的 Web 拉流 SDK,版本信息请参考发布历史,历史版本请参考历史文档。
如果您的直播系统启用了 URL 鉴权,生成的拉流地址通常会包含一个有效期。如果观众在页面停留时间过长,或者由于其他原因导致拉流地址超过有效期,将会出现以下情况:
为了避免播放中断,需要在拉流地址失效前或失败后,及时获取新的拉流地址并切换播放器源。
GeneratePlayURL
接口获取新的有效拉流 URL。veplayer.switch()
方法平滑切换播放源。GeneratePlayURL
接口的能力,支持在地址失效后生成新的鉴权地址。您可以使用 veplayer.switch(newUrl)
方法动态切换播放源。以下是 CDN 和 NPM 集成方式的代码示例,展示如何更新拉流地址:
VePlayer.createLivePlayer({ width: 640, height: 360, url: 'https://testpull.mycloud.com/live/mystream.m3u8?{鉴权参数}', logger: { appId: '5****8', }, }).then(function (veplayer) { // 最新的拉流地址 const newUrl = 'https://testpull.mycloud.com/live/mystream.m3u8?{新的鉴权参数}'; // 更新拉流地址 veplayer.switch(newUrl); });
import { createLivePlayer, register } from '@volcengine/veplayer'; import { hls } from '@volcengine/veplayer-plugin'; import '@volcengine/veplayer/style' register([hls]); createLivePlayer({ width: 640, height: 360, url: 'https://testpull.mycloud.com/live/mystream.m3u8?{鉴权参数}', logger: { appId: '5****8', }, }).then(function (veplayer) { // 最新的拉流地址 const newUrl = 'https://testpull.mycloud.com/live/mystream.m3u8?{新的鉴权参数}'; // 更新拉流地址 veplayer.switch(newUrl); });