git地址
特色
- 轻松播放本地和网络音频
- 集成和调用API非常简单,音频功能几乎可以集成到一个语句中。
- 提供丰富的API方法来轻松实现各种功能。
- 方便集成自定义通知栏和系统通知栏。
- 使用ExoPlayer作为实质播放器。
- 支持多种普通音频格式并支持多种流式音频格式(DASH,SmoothStreaming,HLS,rtmp,flac)。
- 支持边播边存功能,没网也能播。
- 支持改变播放速度。
- 超级丰富的API。
- 支持自定义播放组件,高度的扩展性。
源码里的关键类:
PlaybackManager
播放完成会回调这个方法:
onCompletion()
这个方法为ExoPlay状态的回调
onPlaybackStatusChanged()
MediaQueueManager
上一首和下一首会调用这个方法
skipQueuePosition()(有Bug的原因,已被我删除,替换为skipQueueNext、skipQueueLast)
旧框架状态回调不准确,自己修改新增状态回调:
StarrySky.get().getPlaybackManager().setPlayStatusChanged(state -> {
});
旧框架不准确的原因,自己新增:
//是否存在上一首
StarrySky.get().getPlaybackManager().isExistLast();
//是否存在下一首
StarrySky.get().getPlaybackManager().isExistNext();
//获取当前播放的索引
StarrySky.get().getPlaybackManager().getPlayIndex();