『初体验』SoundJs实现多音频注册播放

问题

在使用soundjs时,有需要注册多个音频文件的场景需求,网上也很少有人写专门的使用方法,自己摸索了下,总结出下面的使用方法。

解决

先放出使用方法:
1.定义注册所有音效方法

function soundFun() {
		//定义歌曲路径
        var assetPath = "./src/music/";
        //定义所有需要注册的音效文件
        var sounds = [{src: "auth.wav",id: "auth"},
                    {src: "insertCard.wav",id: "insertCard"},
                    {src: "insertIDCard.wav",id: "insertIDCard"}];
        //定义播放源类型
        createjs.Sound.alternateExtensions = ["mp3"]; 
        //监听音效注册完成后
        createjs.Sound.on("fileload", loadHandler); 
        //对音效进行注册
        createjs.Sound.registerSounds(sounds, assetPath);
        function loadHandler(event) {
              //这会引发每个已注册的声音
        }
}

2.定义使用音效方法

var instance;
function playAudio(soudId){
	//创建声源(通过注册的id来创建)
	instance = createjs.Sound.createInstance(soudId)
	//监听音效播放完成事件
    instance.on('complete', handleComplete)
    //修改音量
    instance.volume = 0.5
    //播放音效
    instance.play()
	function handleComplete() {
	    //监听音效播放完毕后
    }
}

3.使用音效

soundFun()//注册音效
playAudio('auth')//播放音效

分析

如果直接注册完后就在loadHandler函数里面执行播放音效的话,这样是会如下警告的。
在这里插入图片描述
这是因为chrome浏览器不支持自动播放,需要手动设置:

  1. 地址栏中输入chrome://flags/#autoplay-policy;
  2. 将autoplay-policy选项的Default换成No user gesture is required
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值