海盗王64位dx9客户端修改篇之七
海盗王客户端切换背景音乐的时候,经常会卡死,这个早在1.38版本就出现的问题。
即使是现在,好多1.38的老旧端依然存在这个问题。
它原来用的SDL2和SDL2_MIXER库,外加一套播放控制库。
具体是怎么崩溃的,也一直没有去深入研究。
在3.0版本里,被改成了wmp3库播放。
这个库它原版用的比较老旧,后来被我替换过新版的。
替换后,好像问题得到了改善,很少听说有背景切换音乐导致的崩溃。
不过升级到64位版本后,这个wmp3库就没法用了,它不支持64位,且引用了其他的解码文件。
原来写这个库的人,也早就停止更新了,找不到更新的64位改进版本。
看了下它的源码,相当的晦涩难懂不可修改,于是放弃了。
准备寻找新的播放库替换掉。
经过一段时间的比对,觉得还是用回原来的SDL2库比较靠谱,这个库也更新支持64位版本了。
为了避免之前出现的卡死问题,于是决定自己重新写一套控制代码,封装了切换音乐时淡入淡出等功能。
经过一段时间游戏测试,发现正常播放音乐是没有问题,也不会崩溃。
但是切换音乐时,会导致游戏画面卡顿,原因是音乐播放和渲染是同一线程,导致的渲染延迟问题。
为了解决这个问题,又另外封装了一个多线程的播放控制器。
经过测试,完美解决上面的问题。