BaiduMusic / muplayer

An open source web audio player from Baidu Music, support HTML5 and Flash engine on different platforms(百度音乐播放内核)
https://886.enimo.cn/muplayer/doc/
Other
938 stars 226 forks source link

Player play 选链导致状态异常 #64

Closed dracupid closed 10 years ago

dracupid commented 10 years ago

Player的play方法会将_st改为‘play’,然后使用fetch方法进行选链,如果选链过程中进行了seturl,会调用stop方法,_st会被改为‘stop’,选链后没有重新修正状态,使得播放状态下的歌曲实际状态为stop

dracupid commented 10 years ago

建议考虑将_st的赋值移到局部的play方法中进行

hustKiwi commented 10 years ago

看了下提交记录,当时加上_st的状态标记是为了防止play或pause方法被重复调用。但是确实加上这个就提升了复杂度,可能引入其他bug(因为现在有一个状态维护的机制,并不是依赖_st的标记),之前有用户反馈的 #63 也是加上这个引起的。

我试了下,现在的单测用例无论是否要_st都可以顺利通过。考虑去掉这里_st的判断,之后如有需要,再通过单测复现具体场景后再修复。