2.0.10 打开发版本 清除数据后音乐音效再也无法播放了。

2.0.10 打开发版本 清除数据后音乐音效再也无法播放了。以前版本都是正常的。刚才又测了一遍,确实有问题。

在手机上卸载重装,也再也无法播放了
if (cc.sys.platform === cc.sys.WECHAT_GAME) {
cc.loader.loadRes(url, function (err, data) {
if (err) {
return;
}
var urlmd5 = wx.env.USER_DATA_PATH+"/"+ cc.loader.md5Pipe.transformURL(data.nativeUrl);
// console.log("-===-" + wx.env.USER_DATA_PATH);

            if (this._musicAudio) {
                this._musicAudio.destroy();
                //this._musicAudio = null;
            }
            this._musicAudio = wx.createInnerAudioContext();
            this._musicAudio.autoplay = true;
            this._musicAudio.src = urlmd5;
            this._musicAudio.loop = loop;
            this._musicAudio.volume = 1;
            /* this._musicAudio.onPlay(function () {
                // console.log('开始播放');
            });
            this._musicAudio.onError(function (res) {
                // console.log(res.errCode);
            }); */
            this._checkPlay = false;
            cc.loader.setAutoRelease(data, true);
        }.bind(this));
    }

重新打包又有音效音乐了,然后重复上面操作又会没有

他在帖子里贴的用法现在确实不行,他是直接拼接出缓存的路径来用var urlmd5 = wx.env.USER_DATA_PATH+"/"+ cc.loader.md5Pipe.transformURL(data.nativeUrl);但是2.0.9之后wxDownloader缓存目录变了,现在是统一放一个文件夹下,他拼接出来的路径是错的,所以播放不了

就算路径拼对了,他这种用法现在也用不了的,他是先用loadRes加载,然后去缓存目录取,在2.0.9之前可以这么做,但是现在缓存是延迟缓存的,在loadRes回调的时候缓存可能还没缓存呢,路径拼对了也取不到

请用 Creator 的 API 进行加载和播放吧。拼路径的需求我们后期再优化看看。