基于ios无法播放的问题

由于做大富翁游戏,需要背景音乐,幸好是在原基础上改,但是问题在于在ios上面的音乐无法播放,即.play()无效,然后我上网找了一段代码

function audioAutoPlay(id){
        var audio = document.getElementById(id),
            play = function(){
            audio.play();
            document.removeEventListener("touchstart",play, false);
        };
        audio.play();
        document.addEventListener("WeixinJSBridgeReady", function () {
            play();
        }, false);
        document.addEventListener("touchstart",play, false);
    }
    audioAutoPlay('audio_bg');

这段加上以后,背景音乐就可以加载完页面自动播放了,但是还有一个问题,原本页面里面的.play()会出现叠音,即,无论点什么按钮都会执行骰子的声音。这只能去掉上面的用法了。

后来我在一个地方看到,ios的音乐需要触发开关,我就单独给骰子的按钮加个判断,来执行音乐,这时候的.play()可以执行。

后来他们加需求,失败和答对也加音效,因为要调用ajax,也不知道是不是因为点击事件的问题,这里的.play()可以执行,但是后面的抽奖里面的.play()居然不执行,狗币!!!

经过多次测试,在我一次答错,重新答题的时候,发现抽奖失败可以调用了(因为答题错误和没抽到奖同一个音效),然后我就思考是不是因为要先预调用一次。

audio有个参数是静音(muted),我在骰子的里面加上静音,然后调用所有的音效,这样就全部都可以一开始就调用了,后面需要声音的就取消静音(用Prop可以解决)!

posted @ 2017-06-01 11:27  伶丶AM  阅读(381)  评论(0编辑  收藏  举报