SDK 集成常见问题

更新时间:
复制 MD 格式

本文介绍集成视频直播推流 SDK(Android/iOS/Flutter/Web)及播放器 SDK 时的常见问题。

AlivcLivePushInfoListener 等推流回调不触发怎么排查?

  • 回调监听必须在调用 startPush() 之前通过 setLivePushInfoListener() 注册,推流开始后再注册将无法收到此前的事件。

  • 使用推流 SDK 前需先调用 AlivcLiveBase.registerSDK() 注册 License,否则推流失败且回调异常。

  • 错误事件请通过 AlivcLivePushErrorListener 监听,并可调用 getLastError() 获取最近一次错误详情。

Flutter 直播插件版本如何匹配?Demo 跑不起来怎么办?

flutter_livepush_plugin 与 flutter_aliplayer 的版本需要匹配使用(例如 7.11.0 搭配 7.11.0-interactivelive),版本不匹配会导致编译或运行失败。推荐使用 Flutter 2.8.0~3.22.2 版本区间。集成失败时,请先用官方 Demo 与推荐版本组合验证环境,再逐步替换为业务代码。

针对 setOnPreviewStartedsetOnPreviewStoped 等回调不触发的问题,请按以下顺序排查:

  • 必须在调用 startPreview() 之前设置回调,推流开始后再设置将无法收到此前的事件。

  • 必须调用 livePusher.setInfoDelegate() 启用状态监听。

  • 确保 startPreview() 在预览容器(如 AliLiveFlutterView)创建完成后调用。

  • 建议设置回调后延时约 100 ms 再调用 startPreview(),避免渲染上下文未就绪。

针对 Android 端预览黑屏且无回调的问题:

  • _onPusherPreviewCreated 中调用 startPreview() 时,不应使用异步延迟(如 Future.delayed),避免 UI 渲染与 SDK 初始化时序冲突。

  • 建议开启 Debug 日志辅助定位:调用 AlivcLiveBase.setConsoleEnable(true)AlivcLiveBase.setLogLevel(AlivcLivePushLogLevel.debug)

"Illegal State, you should init first" 报错原因为 SDK 调用顺序错误。请确保 AlivcLivePusher 实例已成功 init 后再调用 startPreview,并检查 UI 生命周期与 SDK 初始化时序是否匹配。

若使用 Flutter 3.41.4 等高版本出现兼容性问题,建议降级至 3.22.2,或使用 2.8.0 版本(支持 2.5.0~3.0.0)。

推流/预览中可以动态切换横竖屏吗?

不支持在预览或推流过程中动态切换横竖屏。屏幕方向需在开始预览/推流前通过 setPreviewOrientation 设置;如需切换方向,应先 stopPreview 再重新 startPreview。横屏推流出现画面拉伸时,可在方向设置完成后延迟约 100 毫秒再调用 startPreview。

直播互动消息支持哪些平台?有 Flutter SDK 吗?

直播互动消息(IM)目前支持 Android、iOS、微信小程序、Web H5(可配合 uni-app 使用),不提供 Flutter SDK。Flutter 应用如需互动消息能力,可通过原生插件桥接方式自行封装集成。

如何在 UniApp X 中集成视频直播原生 SDK?

可以通过自定义 UniApp X 插件(UTS 插件)来集成 iOS 和 Android 原生的视频直播 SDK。具体步骤包括:

  1. 参考 UniApp X 官方 UTS 插件开发文档创建插件。

  2. 在插件中封装 SDK 的初始化、推流、停止等公共方法供 UTS 调用。

  3. 详细的原生 SDK 方法列表及使用步骤请参考 Android/iOS 端推流 SDK 开发者文档。

Flutter aliplayer 插件如何修改为本地依赖?

如需将 Flutter aliplayer 插件修改为本地依赖,需分别修改以下配置文件并将相关配置项设置为 true:

  1. iOS 端:修改 flutter_aliplayer.podspec 文件。

  2. Android 端:修改 build.gradle 文件。

播放器 SDK 提示未激活怎么排查?

播放器 SDK 提示 License 未激活时,请按以下顺序排查:

  1. 检查控制台应用管理中的域名配置是否与当前页面域名一致。

  2. 检查代码中配置的 domain 是否与控制台配置完全匹配。

  3. 确认 Key 配置正确:必须使用 License Key,而非 AppID。

  4. 修正上述配置后重新测试即可解决。

Flutter 推流 SDK 设置配置参数时是否需要使用 await 等待?

不需要。设置 pusherConfig 配置参数以及调用相关方法时,均不需要使用 await 等待。

Android 推流 SDK 基础模式下如何切换或调整预览视图?

  • 设置预览显示模式:在基础模式下,可以通过 mAlivcLivePushConfig.setPreviewDisplayMode() 方法设置预览显示模式,支持铺满窗口、保持比例、裁剪适配三种模式。

  • 推流中动态调整预览视图:若需在推流过程中动态更改预览视图,可以调整预览 View 的子视图布局来实现,例如遍历 startPreview 时传入的 SurfaceView 的所有 subView 并修改其 frame。