Audiosource改变clip后的第一次播放无效

AllocBlock
Mon, 07 May 2018 12:25:28 +0000

如我在 (省略)/project/assets/resources/audio 下有01.mp3，02.mp3，以及03.mp3三个音频文件
我创建两个audiosource组件，分别叫track1，track2，默认下track1的clip指向01.mp3，track2的clip指向02.mp3，

       cc.log((省略).track1.clip);//"(省略)/project/assets/resources/audio/01.mp3"
       cc.log((省略).track2.clip);//"(省略)/project/assets/resources/audio/02.mp3"

用button点击事件触发音频的重新加载和播放

//button.js
onLoad: function (){
        this.node.on('mousedown', function (event) {
            this._loadAudio();
            this._play();
        }, this);
},

重新加载：

//button.js
_loadAudio: function () {
       (省略).track1.clip = "(省略)/project/assets/resources/audio/03.mp3";//从01.mp3变成02.mp3
       (省略).track2.clip = "(省略)/project/assets/resources/audio/02.mp3";//02.mp3,没有改变
},

播放：

 _play: function(){
         (省略).track1.play();
         (省略).track2.play();
},

点击button，此时只有track2发出了声音，track1没有声音
再次点击button，这次两个track都发出声音了…
这个问题只要一改变clip就会稳定出现
我尝试过这些方法：

loadAudio后延时几秒再play，没有效果

多次调用_loadAudio或者_play，没有效果

在play之前stop一下，没有效果

多次play, stop，没有效果，依然要在下次按下button后track正常，这我很想不通…我复制了按按钮的过程啊，现在按一次按钮程序相当于执行两次，但是却和按两次按钮的情况不一样…太诡异了

阅读整个主题