创建 App 类型应用要求应用名和包名称唯一,请检查是否重复。如已确定包名唯一,请创建工单联系技术支持处理。
出现 Rtmp connecting failed 报错常见原因如下:
拉流播放时出现时延高的情况和推流端设置的 GOP(关键帧间隔 GOP)大小有关,建议检查推流端设置的 GOP 大小,推荐 GOP 设置为 2s。
如果您对时延要求较高,请创建工单联系技术支持获取调优帮助。
可以,Android 和 iOS 可以共用一个 License,您需要在创建 App 类型应用时同时填写 Android 应用的 PackageName 和 iOS 应用的 Bundle ID。详细操作请参见创建应用。
如果您已经在火山引擎其他产品控制台创建过应用(如在视频点播中创建过 App),接入视频直播客户端 SDK 时,无需重复创建应用。
请参考以下操作获取视频直播客户端 SDK License。

创建应用时报错常见原因如下:
不同功能使用的 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://testpull.mycloud.com/live/mystream.sdp' : 'https://testpull.mycloud.com/live/mystream.m3u8', width: 640, height: 360, rtm: { fallbackUrl: 'https://testpull.mycloud.com/live/mystream.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 ? 'XXXX.sdp' : 'XXXX.m3u8' })
在弱网环境下进行 RTM 拉流时或因视频码率太大会导致卡顿时,您可以设置播放端延时为播放预留更多缓冲时间。
在 Web 拉流 SDK(Veplayer) 中可通过为播放器配置 delayHint 增加缓冲时间(单位为秒)。
2.0.0 及以上版本示例代码如下:
VePlayer.createLivePlayer({ width: 640, height: 360, url: '//live.example.com/live/xxxxx.flv', logger:{ appId: 'xxxx' }, rtm: { delayHint: 3 } })
1.5.0 及以上版本代码示例如下:
new VePlayer({ rtm: { delayHint: 3 } })
在 iOS 应用开发中,创建 App Group 并配置给两个不同的 App 或组件,可以实现 App 间的数据共享。




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



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



当前视频直播 SDK 仅提供基础的推流、拉流能力,不支持连麦功能,也不会自动渲染连麦场景下的多人画面。如需实现连麦能力,需结合其他连麦相关 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 端通常无法自动收到推流恢复事件,也不会自动恢复播放。
如果您集成了 Web 推流 SDK,可根据 Web 推流 SDK 的推流相关回调,例如 onPushStatusUpdate、onPushStart 和 onPushStop,感知推流状态变化。当推流端监听到推流恢复后,需要将推流开始状态同步给播放端,再由播放端调用 Web 拉流 SDK 的 play() 方法恢复播放。
如果您未集成 Web 推流 SDK,可通过服务端回调感知推流状态。具体步骤如下:
说明
200 OK 后,回调消息不再重复发送。仅当请求失败或超时时,系统才会重试发送回调消息。