可以。您可以按以下步骤操作:
AppName 和 StreamName 分别生成推流地址和拉流地址。详见地址生成器或 GeneratePushURL - 生成推流地址和 GeneratePlayURL - 生成拉流地址。完成以上操作后,即可在 App 中使用拉流地址播放直播。
支持。SDK 应用创建后,您可以修改应用名称和应用绑定信息。App 类型应用支持修改 PackageName、BundleID 和 HarmonyPackage,Web 类型应用支持修改泛域名和 WebOTT 应用标识。
出现 Rtmp connecting failed 报错常见原因如下:
拉流播放时出现时延高的情况和推流端设置的 GOP(关键帧间隔 GOP)大小有关,建议检查推流端设置的 GOP 大小,推荐 GOP 设置为 2s。
如果您对时延要求较高,请创建工单联系技术支持获取调优帮助。
可以,Android 和 iOS 可以共用一个 License,您需要在创建 App 类型应用时同时填写 Android 应用的 PackageName 和 iOS 应用的 Bundle ID。详细操作请参见步骤一:创建或绑定 SDK 应用。
如果您已经在火山引擎其他产品控制台创建过应用(如在视频点播中创建过 App),接入视频直播客户端 SDK 时,无需重复创建应用。
请参考以下操作获取视频直播客户端 SDK License。

不可以。视频直播的 SDK 应用按接入端类型分为 Web 和 App 两类。已有 Web 应用只能用于集成 Web 拉流 SDK,不能追加 Android、iOS 或 HarmonyOS NEXT 配置。同理,已有 App 应用也不能直接追加 Web 配置。
如果您的业务同时包含 Web 端和 App 端接入,请分别创建或绑定对应类型的 SDK 应用,并获取各自的 App ID 和 License,在对应端的 SDK 初始化配置中填入相关信息独立使用。
不要求。
Web 推流 SDK 不需要创建 SDK 应用,也不需要配置 App ID 和 License。App 拉流 SDK 需使用 App 类型 SDK 应用的 App ID 和 License。
视频直播通过推流域名、拉流域名和流地址识别流资源。只要您已添加推流域名和拉流域名,并使用有效的流地址,Web 端推流后,App 端即可正常拉流播放。
不同功能使用的 Subspecs 也不同。详见初始化 iOS 拉流 SDK。
| 功能 | Subspecs |
|---|---|
| 直播拉流(不包含 RTM 协议拉流) | LivePull |
| 直播拉流(包含 RTM 协议拉流) | LivePull-RTS |
不支持。Web 推流 SDK 支持屏幕共享功能。
说明
后台继续播放时仍会消耗流量,为避免流量浪费,不建议您使用此功能。
您可以自定义一个 WebView 类(如 BackgroundVisibleWebView),此类允许 Web 视图即使在其不可见时也保持可见。这对于希望在后台继续加载内容的 Web 视图的情况很有用,例如当用户滚动列表视图时。
代码示例如下:
class BackgroundVisibleWebView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : WebView(context, attrs, defStyleAttr) { override fun dispatchWindowVisibilityChanged(visibility: Int) { if( windowVisibility == View.VISIBLE ){ return } super.dispatchWindowVisibilityChanged(View.VISIBLE) } }
使用 RTM 拉流具有延时低的优点,使用前您需先判断当前浏览器是否支持 RTM 拉流,如果不支持,请用其他播放格式。
2.0.0 及以上版本判断浏览器是否支持 RTM 拉流的代码示例如下:
// 判断是否支持 RTM const isRTMSupported = await VePlayer.isRTMSupported(); // 判断 RTM 是否支持 H264 格式播放。 const isRTMSupportH264 = await VePlayer.isRTMSupportCodec('h264'); VePlayer.createLivePlayer({ // v2.1.0 及后续版本不再需要判断是否支持 RTM 播放,播放器会自行判断,如果不支持播放 RTM 则降级到 fallbackUrl 地址。 url: isRTMSupported && isRTMSupportH264 ? 'https://pull.example.com/live/test.sdp' : 'https://pull.example.com/live/test.m3u8', width: 640, height: 360, rtm: { fallbackUrl: 'https://pull.example.com/live/test.m3u8', }, logger: { appId: '5*****8', }, });
1.5.13 及以上版本判断浏览器是否支持 RTM 拉流的代码示例如下:
// 判断设备是否支持 RTM 播放 const isRTMSupported = VePlayer.isRTMSupported(); // 判断 RTM 是否支持 H.264 格式播放 (Web 拉流 SDK v1.5.13 及以上版本开始支持) const isRTMSupportH264 = await VePlayer.isRTMSupportCodec('h264'); const veplayer = new VePlayer({ // 不支持 RTM 的建议用其他格式播放 url: isRTMSupported && isRTMSupportH264 ? 'https://pull.example.com/live/test.sdp' : 'https://pull.example.com/live/test.m3u8' })
在弱网环境下进行 RTM 拉流时或因视频码率太大会导致卡顿时,您可以设置播放端延时为播放预留更多缓冲时间。
在 Web 拉流 SDK(VePlayer) 中可通过为播放器配置 delayHint 增加缓冲时间(单位为秒)。
2.0.0 及以上版本示例代码如下:
VePlayer.createLivePlayer({ width: 640, height: 360, url: '//live.example.com/live/xxxxx.flv', logger:{ appId: '10****51' }, rtm: { delayHint: 3 } })
1.5.0 及以上版本代码示例如下:
new VePlayer({ rtm: { delayHint: 3 } })
在 iOS 应用开发中,创建 App Group 并配置给两个不同的 App 或组件,可以实现 App 间的数据共享。




在开发者中心,为需要共享数据的应用和组件配置相同的 App Group。



在 Xcode 工程中为需要共享数据的 App 或组件配置相同的 App Group



当前视频直播 SDK 仅提供基础的推流、拉流能力,不支持连麦、商品、点赞、评论、抽奖等互动功能,也不会自动渲染连麦场景下的多人画面。如需实现此类功能,通常需要结合其他产品能力自行实现。
由于浏览器对 RTM 协议限制,Web 端播放 RTM 流时直播流必须去除 B 帧,且音频编码必须改为 Opus 格式,否则会出现卡顿或无声。
请完成以下步骤,解决卡顿和无声问题:
AppName 和 StreamName,并单击生成拉流地址。例如推流地址为 rtmp://push.example.com/live/test,则使用 AppName live、StreamName test 生成拉流地址。
请在创建播放器时通过 LiveVePlayerOptions 的 lang 参数设置播放器的初始显示语言,例如 lang: 'zh-cn'。配置后,播放器文案将按中文显示。
Web 拉流 SDK 仅监听播放事件,例如播放开始、播放错误、暂停播放等,不会直接监听推流状态变化。因此,推流中断后重新推流时,Web 端通常无法自动收到推流恢复事件,也不会自动恢复播放。
onPushStatusUpdate、onPushStart 和 onPushStop,感知推流状态变化。当推流端监听到推流恢复后,需要将推流开始状态同步给播放端,再由播放端调用 Web 拉流 SDK 的 play() 方法恢复播放。说明
200 OK 后,回调消息不再重复发送。仅当请求失败或超时时,系统才会重试发送回调消息。如果在微信公众平台无法搜索到小火播放器插件,请先确认当前小程序的主体类型和服务类目是否符合插件集成要求。插件方式无需开启 live-player 权限,但仍需满足微信小程序的主体类型和服务类目要求。
如果当前小程序不具备插件方式支持的服务类目,将无法通过插件方式集成视频直播微信小程序拉流 SDK。详见服务类目和资质要求。