EspoirX / StarrySky

🔥A Powerful and Streamline MusicLibrary(一个丰富的音乐播放封装库,支持多种音频格式,完美解决你的问题。)
https://github.com/EspoirX/StarrySky
MIT License
1.39k stars 209 forks source link

使用过程一些问题修改,大佬请查阅 #189

Closed lewic1987 closed 3 years ago

lewic1987 commented 3 years ago

三、ExoPlayback类 1.解决播放错误后自动切换下一首问题 修改后: override fun onPlayerStateChanged(playWhenReady: Boolean, playbackState: Int) { //lewic修改,播放失败时候exo会回调onPlayerError, // 同时也会回调onPlayerStateChanged playbackState = STATE_IDLE //去除这种情况处理,防止出错后走到完成回调继续播放下一首 if (playbackState == Player.STATE_IDLE && isError){ isError = false return } isError = false

override fun onPlayerError(error: ExoPlaybackException) { error.printStackTrace() isError = true

修改前: 无以上逻辑

四、PlayerControlImpl类 1.解决LiveData postValue 数据丢失的问题 onPlaybackStateUpdated方法修改前: playbackState.postValue(playbackStage)

修改后: //lewic修改 修复LiveData postValue 数据丢失的问题 LiveDataUtils.setValue(playbackState,playbackStage)

其他playbackState.postValue的地方修改同上

LiveDataUtils类: public class LiveDataUtils { private static Handler sMainHandler; /**

EspoirX commented 3 years ago

👌