KaraokePlayer - 播放器核心接口KaraokePlayerListener - 播放器回调监听器KaraokePlayRequest - 播放请求对象PlayerManager - 播放管理器,提供预加载和播放列表管理PlayPreLoader - 预加载接口及其实现KtvLoginService - 登录服务LoginEvent - 登录事件PlayerDemoActivity - 播放器演示ActivityKtvPlayFragment - 播放Fragment实现onPlayPrepare之后或者onPlayStart回调中进行初始化stop()方法会释放所有播放资源stop()再调用play()STATE_IDLE: 0 - 空闲状态STATE_START: 1 - 开始状态STATE_PLAYING: 2 - 播放中STATE_PAUSE: 3 - 暂停状态STATE_ENDED: 4 - 播放结束DataSourceType.ORIGINAL - 原唱DataSourceType.ACCOMPANY - 伴奏OnScoreListener 细节见 KtvSDK-打分1. onPrePlay - 调用play()方法后立即回调
2. onPrepareResourceBufferingChange - 资源缓冲进度
3. onPlayPrepare - 播放资源准备完成
4. onVideoSizeChanged - 视频尺寸变化
5. onPlayStart - 播放开始
6. onLyricResourceChanged - 歌词资源更新完成(初始化歌词后会异步调用,也可能在onPlayStart前)
7. onPlayPositionChange - 播放进度更新(持续回调)
8. onVideoBufferPercentChange 视频缓冲进度
9. onBufferingStart/onBufferingEnd - 缓冲开始/结束
10. onPlayEnd - 播放结束onShowPicture回调非常重要,当视频播放失败时必须实现此回调显示封面图,否则会出现黑屏onAllResourceDownloadFinished回调后才能进行下一首歌曲 的预加载,否则会导致当前歌曲下载被取消onPlayPositionChange会持续回调,用于更新播放进度UI登录后
↓
PlayerManager.preload (播放管理器)
↓
PlayPreLoader (预加载器) → KaraokePlayer (播放器)
↓
KaraokePlayerListener (播放回调)
public String getMid(); // 歌曲mid
public String getOriUrl(); // 歌曲原唱URL
public String getAccUrl(); // 歌曲消音伴奏URL
public boolean hasAccUrl(); //是否有伴奏
public boolean hasOriUrl(); //是否有原唱
public byte[] mNodeBytes; // 打分 Note 数据
public byte[] mQycBytes; // 加密 QRC 歌词
public byte[] mLrcBytes; // 加密 LRC 歌词
public int isMvHasLyric(); // MV是否带歌词,0表示无歌词,1表示有歌词
pulic getAlbumImage(); //获取歌曲专辑封面图片URL地址
pulic getMvCoverImage(); //获取MV封面图片
public getSingerLandscapeBigPicUrls(); //歌手横屏大图
public getSingerVerticalBigPicUrls(); //歌手竖屏大图
....KtvSdk视频播放策略 1.调用KaraokePlayer.play()后,MV开始播放。若歌曲原MV播放失败,则播放兜底视频。 2.播放兜底视频 -> 检测在线播放还是离线播放 -> 优先用本地的K歌MV,否则用在线配置的兜底MV。 3.兜底视频播放失败后,粒子动画启用?则进行粒子动画播放。 4.粒子动画不启用?回调onShowPicture
DecodeTypeAuto,会用上我们积累的一些机型兼容策略。如果兼容有问题,可反馈给K歌,再不行可尝试使用mediaplayer.ksong.support.player.KtvPlayerConfig#setEnableScore(false) //关闭打分//接口连接超时, 默认30s
ksong.support.player.KtvPlayerConfig#setHttpConnectTimeoutMs()
//接口read超时,默认30s
ksong.support.player.KtvPlayerConfig#setHttpReadTimeoutMs()ksong.support.player.KtvPlayerConfig#setAudioRecordSource //Android版本>=Android5.0
ksong.support.player.KtvPlayerConfig#setAudioAttributes()
//Android版本<Android5.0时设置streamType
ksong.support.player.KtvPlayerConfig#setStreamType()ksong.support.player.KtvPlayerConfig#setPreferredDevice((AudioDeviceInfo deviceInfo)ksong.support.player.KtvPlayerConfig#setDownloadSpeedLimit(500) //限制离线下载速度为500 KB/sonPlayError或onExecuteFailonShowPicture接口显示大图。stop()释放当前资源stop()避免内存泄漏onShowPicture回调显示封面图,避免视频播放失败时黑屏onAllResourceDownloadFinished回调后才能进行下一首预加载onPlayPositionChange用于更新播放进度UIsongType == SongType.SONG_TYPE_K_SONGsongType == SongType.SONG_TYPE_KSONG_LISTENonAllResourceDownloadFinished后才能预加载下一首