目前抖音直播SDK,仅对有一定流量基础的应用开放,若您的应用已经有一定的日活用户或属于某个行业内的垂类应用,
请您前往抖音开放平台工单系统联系客服,获取相关信息,若您符合接入条件,客服会联系您并提供直播接入相关参数。?
工程中引入直播SDK的依赖,如下
直播SDK接入需要的播放器证书及安全证书拷贝到assets 目录下(相关证书文件,在判断您符合接入条件后,将
统一
申请提供)。
主工程build.gradle中添加APPLOG_SCHEME配置:
主工程build.gradle中添加abiFilters配置:
SDK开发是基于support28(AndroidX只支持到1.0.0,暂不支持更高版本),没有做 AndroidX 有关处理,
因此:
编译构建App,可以成功生成apk文件,说明成功集成了直播SDK。
恭喜你,到这里你已经完成了抖音直播SDK?的集成工作,接下来可以使用SDK?功能了!
本节以Kotlin为例,如果是Java可用
使用抖音直播SDK看播,必须进行抖音登陆授权。整体授权逻辑如下图所示
(其中方块内为开发者实现逻辑):
根据抖音开放平台-Android 接入指南集成抖音开放平台SDK,完成抖音授权操作。
这一步完成后需要获取到如下授权信息:
可以保存到SharePreference或者本地数据库中,直播SDK 使用时直接从存储地获取即可。
直播中注入授权信息,需要开发者自己实现 接口和
接口
例子参考:
下面例子代码仅作为说明示意使用,无法编译通过,如果希望能直接copy到工程中完成授权,请复制文档末尾附件中提供的代码并完成后续步骤
实现LiveContextBuilder.IUserIdGetter接口
该接口用于让直播SDK获取openId
初始化直播SDK时,添加授权配置。
恭喜你,到这一步你已经完成了抖音账号的授权操作!
添加完成后,检查钱包以及支付方式是否可以正常调起
如您已经接入穿山甲或准备接入穿山甲(广告等),需同时传入以下四个参数,请联系技术支持获得:
(如您有其他广告参与直播内容混排,请联系客服)
Partner
PartnerSecret
OriginPartner (非必填参数)
OriginUUID (非必填参数)
如果对接后,确认要使用上述字段,请使用如下接口传入:
基本信息不影响基础的功能使用,默认也从context中获取,影响包括信息展示、问题追踪、数
据查询等功能。若有特殊的信息定制需求,请自行复写。
接入直播SDK后,强力建议参照下面case验证核心功能是否正常。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
调试开关
注:线上版本请务必关闭。
问题 | 解决方式 |
报错信息和直播SDK包含重复资源定义有关 Duplicate resources | 设置android.disableResourceValidation=true |
报错AndroidX相关问题 | 直播SDK本身没有禁用AndroidX, android.enableJetifier=true设置后如果还有问题, 请按照“其他编译问题” 处理 |
找不到抖音授权SDK的依赖/找不到字节侧 一些库依赖 | 根据文档检查maven引入是否正确 |
release编译不过,错误信息和proguard有关 | 尝试android.enableR8=false来关闭R8检查是否和R8有关。 以及尝试开启-dontoptimize 来检查是否和优化器有关。 按照“其他编译问题”处理,并将上述尝试的结果一起提交给字节侧。 |
其他编译问题 | 请联系技术支持同学,并附上如下信息 1.使用命令行编译,并在最后添加 --stacktrace 例如:https://open.douyin.com/platform/resource/docs/develop/guide/douyin-live-sdk/gradlew :app:assemble --stacktrace 得到的编译错误日志。 2. 得到的依赖树 |
遇到以下问题时,请附上问题APK及使用的repo,crash请携带完整crash信息,至工单处发起oncall(一个链接)。
如果是release包的话,请给出crash信息中,和直播有关的堆栈的mapping信息。
问题 | 解决方式 |
初始化直接crash,一个native的crash | 查看安全SDK的签名字符串是否正确配置,如果确认正确配置, 至工单处发起oncall |
初始化直接crash,其他crash | 根据crash信息自查,如果自查没有信息的话,可把相关crash 信息带上,至工单处发起oncall |
初始化没crash,但是初始化成功没有走 | 至工单处发起oncall |
直播广场入口,无法进入直播间,无错误提示。 | 自行实现IHostAction并作为初始化参数(Builder中同样支持 此参数),并在startLive方法中调用 DefaultLivePlayerActivity.start(context, roomId, bundle)开启 直播,并try catch此调用。 如果调用未发生,至工单处发起oncall。 如果调用发生且发生crash,请根据crash信息自行调整。 如果调用发生且未发生crash,请检查授权实现中isLogin是否返回true。 |
直播广场入口,无法进入直播间,有错误提示, 进入直播间,然后显示错误提示切换到下个直 播间,几次切换后退出。 | 打印依赖树,检查rangersapplog版本是否是530. 直播尚未兼容高于此版本的rangersapplog |
直播广场入口,无法进入直播间,有错误提示, 其他。 | 联络技术支持查看,并将 1.错误信息截图 2.初始化直播代码(Builder的设置/LiveContext的实现) 至工单处发起oncall |
直播广场入口,可以进入直播间,进入后直接 crash,feasco相关 | 检查支持的so库版本,直播默认支持armeabi v7a及之上, 不支持v5 only。如果有特殊需求请联络相关技术支持。 |
直播广场入口,可以进入直播间,进入后 直接crash,发现Lottie有关的crash问题, 堆栈来源于一个Lottie NPE。 | 检查Lottie版本,直播只支持2.6.1的Lottie版本 |
直播广场入口,可以进入直播间,进入后 不展示流画面, 一直loading | 联系技术支持查看,播放器存在鉴权问题,查看播放器id 和证书是否正确放置。可以过滤ttmn看是否出现 auth failed错误,其他情况请保存日志后至工单处发起oncall。 |
直播广场入口,可以进入直播间,进入后 展示流画面,但是一段事件后卡住 | 至工单处发起oncall,播放器存在问题 |
直播广场入口,可以进入直播间,进入后 展示流画面,但是尺寸/比例异常 | 至工单处发起oncall,附上主播名称 |
流正常,无法上下滑动切换直播间 | 进房参数错误,至工单处发起oncall。 |
流正常,无更多直播入口 | 直播初始化错误,至工单处发起oncall。 |
PK直播间无PK血条 | 至工单处发起oncall,播放器存在鉴权问题,查看播放器id 和证书是否正确放置。可以过滤ttmn看是否出现auth failed 错误,其他情况请保存日志。 |
无法授权,任何操作都爆无授权错误 或重复弹出授权UI | 授权接口实现有问题,请在getTokenInfo方法返回之前打印 其返回值,并在onTokenInvalid方法开始打印调用堆栈, 并在调用回调的onSuccess和onFailed前,打印填充的参数信息。 将包含这些打印信息的包附上,至工单处发起oncall。 |
可授权,但是无法互动,弹出错误信息 | 如果弹出的错误信息是未授权,则按照“无法授权”处理。 其他错误至工单处发起oncall。 |
可授权,但是无法互动,也不弹出错误信息 | 至工单处发起oncall。 |
聊天区,自己发出聊天信息会出现两条 | 应用是否在直播间外切换了授权用户?如果有,需要实现 IHostUser接口以告知直播SDK发生了用户切换。内部接 入方自行在IBaseHostService中替换IHostUser实现,外 部接入方,请关注Live.init的第四个参数,并提供一个自 定义的IBaseHostService的实现,将其中IHostUser的实 现替换。 如果已经做了上述操作仍存在问题,请检查 onTokenInvalid被回调,授权完成后,回调了callback的 onSuccess并传入了正确的token。 若问题仍然存在,则按照“无法授权”处理。 |
关注后下滑再返回当前直播间,关注 状态被重置 | 账号被风控,至工单处发起oncall。附上当前账号token。 |
分别把一下两个代码块中的内容复制到两个类文件中使用