全民K歌IOT开放平台
  1. KtvSdk4.0接入说明
全民K歌IOT开放平台
  • 厂商合作流程
  • 快速接入K歌开放平台流程
  • SDK bug提单规范
  • 如何在线调试接口
  • 常见问题FAQ
  • 开放平台API错误码说明
  • 开放平台接入指南
    • 登录鉴权方式介绍V2(推荐)
    • 如何申请接入
    • CDK权限申请流程
    • 暗账号绑定明账号对接文档
    • 全民K歌暗账号登录方案
    • 获取应用级token
      POST
    • 获取登录二维码
      POST
    • 查询二维码的状态
      POST
    • 获取用户级token
      POST
    • 刷新用户级token
      POST
    • 暗账号解绑K歌uid
      POST
    • 获取暗账号绑定信息
      POST
  • KtvSDK3.0接入说明
    • KtvSDK-接入指南
    • KtvSDK-打分
    • KtvSDK-登录
    • KtvSDK-歌词
    • KtvSDK-播放
    • KtvSDK-作品录音、合成与播放2.0版
    • KtvSDK-播放页实现示例
    • KtvSDK-常见问题FAQ
    • KtvSDK-低性能设备处理
    • KtvSDK-反馈
    • KtvSDK-缓存管理
    • KtvSDK-切换音频视频清晰度
    • KtvSDK-跳过前奏
    • Ktv支付-米大师支付
    • KtvSDK-播放失败错误码说明
    • KtvSDK-3.0版本新功能
    • KtvSDK-2.0升级到3.0版本迁移指南
    • KtvSDK-多屏渲染
    • KtvSDK-多屏一起唱---歌词与打分适配
    • KtvSDK-Android4.4设备G2证书兼容处理
    • KtvSDK-APP上报
    • KtvSdk-离线缓存与离线播放
    • KtvSDK-3.0升级到4.0版本迁移指南
  • 基础类
    • tagId对照表
    • 歌曲详情
    • 查询mv的播放地址
    • 搜索
    • 搜索联想
    • 查询歌手歌曲
    • 获取歌曲歌词文件
    • Q音歌曲mid映射K歌
    • 短剧播放链接
    • 查询应用限免配置
    • 转换Q音或酷狗歌曲ID
    • 搜索(海外)
    • 查询歌手类型列表(海外)
    • 查询歌手列表(海外)
    • 查询热门歌手列表(海外)
  • 运营类
    • 排行榜id说明
    • 获取城市id列表
    • 获取专题分类列表
    • 获取云端配置
    • 热门ugc
    • 热搜词
    • 排行榜
    • 获取专题下歌曲信息
    • 获取车联渠道映射
    • 热门推荐
    • (新)排行榜
    • 综合歌单列表查询
    • 设置缓存设备
    • TV版分类歌单列表
    • 获取用户协议
    • 综合歌单列表查询(海外)
    • 榜单列表查询(海外)
    • 自建歌单列表查询(海外)
    • 获取广告配置
    • 拉取短剧合集的列表
    • 获取渠道运营位配置
    • 查询合唱榜单
    • 上报合唱榜单
    • OTA升级版本检查
  • 用户类
    • 用户信息查询
    • 删除用户UGC作品
    • 获取推荐/翻唱作品
    • 获取同城作品
    • 用户作品列表
    • 获取好友作品
    • UGC作品详情
    • 更改作品访问权限
    • 用户个推歌单
  • 支付类
    • 支付接入流程
    • 订单发货使用简述
    • 开通设备会员限免简述
    • 订单发货中通用sign计算规则
    • 通用返回结构
    • 【CDK】CDK兑换
    • 【CDK】生成CDK
    • 【CDK】CDK召回
    • 【CDK】CDK状态查询
    • 【三方支付】订单发货
    • 【三方支付】手机号发货
    • 【三方支付】订单状态查询
    • 【米大师支付】获取会员商品列表
    • 【米大师支付】未登录-查询会员商品列表
    • 【米大师支付】支付下单
    • 【米大师支付】支付成功通知
    • 【米大师支付】查询用户支付成功订单记录
    • 查询设备以及用户是否有赠送资格
    • 查询设备限免剩余时长
    • 设备会员迁移
    • 查询会员赠送时长
    • 同步支付订单接口
    • 【三方支付】存量会员迁移领取查询
    • 【三方支付】存量会员迁移接口
    • 授权设备体验会员
    • 查询用户会员信息
    • 【三方支付】超会发货
    • 取消授权设备体验会员
  • 用户作品-文件类
    • callback_url说明
    • 上传音频源文件
    • (服务端)上传音频作品的链接
  • 通用类
    • 【厂商定制】匹配搜索
    • 获取kg的短链接
    • 三方厂商通用上报
  • KtvSdk4.0接入说明
    • KtvSdk4.0接入文档
    • PK与合唱接入
    • 动效歌词接入文档
    • 手麦接入文档
    • 支持调整录制时长限制
  • 数据模型
    • Schemas
      • protocal.DelUserWorkReq
      • protocal.BarDisplay
      • protocal.GetLyricUrlReq
      • protocal.ConfigItem
      • multipart.FileHeader
      • protocal.ExchangeCdkeyReq
      • protocal.GetLyricUrlRsp
      • protocal.DelUserWorkRsp
      • protocal.GetVipProductRsp
      • protocal.GetChannelReq
      • protocal.ExchangeCdkeyRsp
      • protocal.GetMvUrlReq
      • protocal.GetHitedSongListReq
      • protocal.GoodsInfo
      • protocal.GetChannelRsp
      • protocal.ClientUgcUploadRsp
      • protocal.GetLimitFreeRestTimeReq
      • protocal.GetMvUrlRsp
      • protocal.GetHitedSongListRsp
      • protocal.VipAdItem
      • protocal.GetClassReq
      • protocal.DeleteFileReq
      • protocal.GetLimitFreeRestTimeRsp
      • protocal.GetSongInfoByQmIDReq
      • protocal.GetRecommWorkReq
      • protocal.WebOrderNotifyReq
      • protocal.GetClassRsp
      • protocal.DeleteFileRsp
      • protocal.GetPresentVipConfReq
      • protocal.GetSongInfoByQmIDRsp
      • protocal.GetRecommWorkRsp
      • protocal.WebOrderNotifyRsp
      • protocal.GetConfigReq
      • protocal.UgcUploadReq
      • protocal.GetPresentVipConfRsp
      • protocal.GetSongInfoReq
      • protocal.GetUserInfoReq
      • protocal.GetConfigRsp
      • protocal.UgcUploadRsp
      • protocal.OpenDeviceLimitReq
      • protocal.WebOrderStatusReq
      • protocal.GetSongInfoRsp
      • protocal.GetUserInfoRsp
      • protocal.GetHomePageReq
      • textproto.MIMEHeader
      • protocal.PresentNormalVipReq
      • protocal.WebOrderStatusRsp
      • protocal.GetSongUrlReq
      • protocal.GetUserWorkReq
      • protocal.GetHomePageRsp
      • protocal.PresentNormalVipRsp
      • protocal.GetSongUrlRsp
      • protocal.GetUserWorkRsp
      • protocal.GetHotRecomUgcReq
      • protocal.MvInfo
      • protocal.GetVipInfoRsp
      • protocal.GetHotRecomUgcRsp
      • protocal.SearchReqV2
      • protocal.GetWorkInfoReq
      • protocal.GetHotWordsReq
      • protocal.SearchRsp
      • protocal.GetWorkInfoRsp
      • protocal.GetHotWordsRsp
      • protocal.SingerInfo
      • protocal.SetUgcAccessRightReq
      • protocal.HomePageItem
      • protocal.SingerSongsFilterReq
      • protocal.SetUgcAccessRightRsp
      • protocal.PlayList
      • protocal.SingerSongsFilterRsp
      • protocal.RankSongReq
      • protocal.SingerSongsReq
      • protocal.UgcItem
      • protocal.RankSongRsp
      • protocal.SingerSongsRsp
      • protocal.UserFeatureSongReq
      • protocal.RecommendReq
      • protocal.SongContentStr
      • protocal.UserFeatureSongRsp
      • protocal.RecommendRsp
      • protocal.SongInfo
      • protocal.SongInfoPlus
      • protocal.Theme
      • protocal.TCLGetOpenIdReq
      • protocal.ThemeClass
      • protocal.TCLGetOpenIdRsp
      • protocal.ThemeSongsByIdReq
      • protocal.ThemeSongsByIdRsp
      • protocal.UgcItemInfo
      • protocal.Word
      • protocol.PresentNormalVipReq
      • protocol.UgcUploadRsp
      • protocol.SingerSongsRsp
      • protocol.TCLGetOpenIdRsp
      • protocol.RecommendRsp
      • protocol.Word
      • protocol.UserFeatureSongRsp
      • protocol.CheckDeviceEligibleReq
      • protocol.GetCollectListReq
      • protocol.AddCollectListReq
      • protocol.SongInfo
      • protocol.DelCollectListReq
      • protocol.VipAdItem
      • protocol.WebOrderStatusRsp
      • protocol.ClientUgcUploadReq
      • protocol.GetTopListRsp
      • protocol.OpenDeviceVipRsp
      • protocol.RefundDeviceVipReq
      • protocol.GetLyricUrlRsp
      • protocol.GetSongInfoByQmIDReq
      • protocol.GetSongInfoRsp
      • protocol.GetSongUrlRsp
      • protocol.SearchRsp
      • protocol.SingerSongsFilterReq
      • protocol.SongInfoPlus
      • protocol.GetLyricUrlReq
      • protocol.GetMvUrlReq
      • protocol.GetMvUrlRsp
      • protocol.GetSongInfoByQmIDRsp
      • protocol.GetSongInfoReq
      • protocol.GetSongUrlReq
      • protocol.MvInfo
      • protocol.SearchReqV2
      • protocol.SingerInfo
      • protocol.SingerSongsFilterRsp
      • protocol.SingerSongsReq
      • protocol.SongContentStr
      • protocol.DelCollectListRsp
      • protocol.GetHitedSongListRsp
      • protocol.GetUserWorkReq
      • protocol.GetUserWorkRsp
      • protocol.GetWorkInfoRsp
      • protocol.SetUgcAccessRightRsp
      • protocol.DelUserWorkReq
      • protocol.AddCollectListRsp
      • protocol.DelUserWorkRsp
      • protocol.GetHitedSongListReq
      • protocol.GetCollectListRsp
      • protocol.GetRecommWorkReq
      • protocol.GetUserInfoReq
      • protocol.GetUserInfoRsp
      • protocol.GetRecommWorkRsp
      • protocol.GetVipInfoRsp
      • protocol.GetWorkInfoReq
      • protocol.SetUgcAccessRightReq
      • protocol.UgcItem
      • protocol.UserFeatureSongReq
      • protocol.GoodsInfo
      • protocol.WebOrderNotifyRsp
      • protocol.GetVipProductRsp
      • protocol.BarDisplay
      • protocol.OpenDeviceVipReq
      • protocol.RefundDeviceVipRsp
      • protocol.WebOrderNotifyReq
      • protocol.WebOrderStatusReq
      • protocol.ExchangeCdkeyRsp
      • protocol.GetPresentVipConfRsp
      • protocol.PresentNormalVipRsp
      • protocol.GetLimitFreeRestTimeReq
      • protocol.GetLimitFreeRestTimeRsp
      • protocol.ExchangeCdkeyReq
      • protocol.GetPresentVipConfReq
      • protocol.OpenDeviceLimitReq
      • protocol.GetClassRsp
      • protocol.GetHomePageReq
      • protocol.GetHotRecomUgcReq
      • protocol.GetHotRecomUgcRsp
      • protocol.GetTopListReq
      • protocol.RankSongRsp
      • protocol.RecommendReq
      • protocol.ThemeClass
      • protocol.ThemeSongsByIdRsp
      • protocol.ConfigItem
      • protocol.GetChannelReq
      • protocol.GetChannelRsp
      • protocol.GetClassReq
      • protocol.GetConfigReq
      • protocol.GetConfigRsp
      • protocol.GetHomePageRsp
      • protocol.GetHotWordsReq
      • protocol.GetHotWordsRsp
      • protocol.HomePageItem
      • protocol.PlayList
      • protocol.RankSongReq
      • protocol.Theme
      • protocol.ThemeSongsByIdReq
      • protocol.UgcItemInfo
      • protocol.GetShortUrlReq
      • protocol.GetShortUrlRsp
      • protocol.SearchHintRsp
      • protocol.SearchHintReq
      • protocol.MultiPlaylistRsp
      • protocol.PlaylistInfo
      • protocol.MultiPlaylistReq
      • protocol.GetPayOrderListReq
      • protocol.GetPayOrderListRs p
      • protocol.GetUserVipInfoReq
      • protocol.GetUserVipInfoRsp
      • protocal.GetTvPlaylistSetReq
      • protocol.Playlist
      • protocol.GetTvPlaylistSetRsp
      • protocol.TvChorusUser
      • protocol.ClientUgcUploadRsp
      • protocol.Episode
      • protocol.UgcUploadReq
      • protocol.GenerateNewOrderCdkReq
      • protocol.GetMiniShowUrlReq
      • protocol.GenerateNewOrderCdkRsp
      • protocol.DeleteFileReq
      • protocol.GetVipProductReq
      • protocol.GetMiniShowUrlRsp
      • protocol.DeleteFileRsp
      • protocol.MergerQrCode
      • protocol.GetSdkTokenReq
      • protocol.GetSdkTokenRsp
      • protocol.PlacePayOrderReq
      • protocol.PlacePayOrderRsp
      • protocol.QueryReceiveTransferVipReq
      • protocol.QueryReceiveTransferVipRsp
      • protocol.ReceiveTransferVipReq
      • protocol.ReceiveTransferVipRsp
      • protocol.RecallNewCDKReq
      • protocol.QueryNewCDKReq
      • protocol.QueryNewCDKRsp
      • protocol.OpenDeviceLimitRsp
      • protocol.RecallNewCDKRsp
      • protocol.WebThirdpartyOrderReq
      • protocol.GetMiniShowCollectionReq
      • protocol.WebThirdpartyOrderRsp
      • protocol.GetMiniShowCollectionRsp
      • protocol.MiniShowItem
      • protocol.TCLGetOpenIdReq
  1. KtvSdk4.0接入说明

PK与合唱接入

功能介绍#

车载/TV相比手机端,存在多人使用同一设备K歌的情况。多人场景下,用户存在同屏互动的诉求,如PK、合唱等。
PK模式:PK为双人模式,两人同唱一首歌,歌词控件可显示A、B角色分段信息、头像信息,A、B的打分分数可各自统计,展现出PK的效果。
效果示例:
image.png
合唱模式:合唱为双人模式,两人同唱一首歌,歌词控件可显示A、B角色分段信息、头像信息,A、B的打分分数合并显示,用于合唱场景。
效果示例:
image.png

PK与合唱接口#

PkChorus是Pk合唱功能的核心类,提供了初始化,歌曲是否支持pk合唱,获取加入pk合唱的链接,监听用户加入pk或者合唱,退出pk合唱,修改打分条颜色,获取pk合唱结果,拉取合唱top榜单等功能。

初始化#

判断当前歌曲是否支持pk#

判断当前歌曲是否支持合唱#

获取pk发起者参与pk的链接#

发起者可通过扫包含此链接的二维码,加入pk,若没有用户扫码则发起者是匿名用户

获取pk挑战者参与pk的链接#

挑战者可通过扫包含此链接的二维码,加入pk 若没有用户扫码则挑战者是匿名用户

获取合唱发起者参与合唱的链接#

发起者可通过扫包含此链接的二维码,加入合唱 若没有用户扫码则发起者是匿名用户

获取合唱挑战者参与合唱的链接#

挑战者可通过扫包含此链接的二维码,加入合唱 若没有用户扫码则挑战者是匿名用户

监听参与pk和合唱,获取参与者的用户信息#

感知用户的加入

移除监听#

移除之后将无法感知用户的加入

获取合唱top用户列表#

是当前歌曲对应的top用户

退出pk#

用户主动退出pk

退出合唱#

用户主动退出合唱

开始pk#

不支持pk,未登录,不是vip则无法开启pk

开始合唱#

不支持合唱,未登录,不是vip则无法开启合唱

监听PK过程中的分数与pk结束后的pk结果#

pk的分数指的是平均分,比如挑战者唱了10句总得分是800分,那么均分就是80
pk结束后会输出每个参与者的得分

监听合唱过程中的分数与合唱结束后的合唱结果#

合唱的分数指的是已唱句子的总得分,比如挑战者唱了10句总得分是800分,那么目前的合唱分数就是800分,
合唱结束后会输出合唱的结果:包含总分,等级(比如s,ss),排名,发起者挑战者信息

PK与合唱歌词初始化#

相较于普通的歌词初始化逻辑,主要增加了if (info?.isSupportPk == true)处的PK初始化逻辑。
在歌词显示方面,PK与合唱的初始化逻辑一致。
里面PlayConsole类只是演示功能,sdk不维护此类,需要厂商自己实现相同的逻辑。

用户头像加载#

PK头像的加载需要用到图片加载组件,实现com/tme/ktv/api/KtvInitParams.imageLoader方法以让sdk可以加载图片。
在KtvSdk.init()时传入KtvInitParams实例。

PK歌词定制#

歌词颜色定制
PK/合唱模式时,歌词会进行根据歌词中定义的唱歌角色不同,进行歌词变色(角色A红色、角色B蓝色)。如果需要颜色定制,修改LyricView中的属性值:
lightTextColor:RoleA角色歌词颜色
lightTextColorRoleB:RoleB角色歌词颜色
其它字体等属性值都是共用的。
PK头像定制
必须在build()前调用
LyricInitializer().setLyricView(lyricView).setPKHeadBitmap(BitMapA, BitmapB).build()
修改于 2026-02-02 13:04:16
上一页
KtvSdk4.0接入文档
下一页
动效歌词接入文档
Built with