[]ios load后 声音播放问题

var resurls = [];
resurls.push({url:"http://192.168.6.132:8900/bin/comp/tap.mp3",type:Laya.Loader.SOUND});Laya.loader.load(resurls, Handler.create(this, onLoaded), Handler.create(this, onLoading, null, false));

function onLoaded(){
console.log(Laya.loader.getRes(src));
}
 
在chrome,安卓下都是正常的,在ios和mac Safari下是undefined
放在一个sprite的click事件里 同样也是undefined
 
已邀请:

Funkyfun

赞同来自:

每人理,自己来,暂时微信端iOS 的解决方案
在iOS内所有的媒体资源需要用户主动触发事件才能加载,所以play()必须放在例如click的事件内执行,不然会被浏览器拦截
在微信里可以借助WeixinJSBridge来替代click来实现自动播放,
window.WeixinJSBridge.invoke("getNetworkType", {}, playMedia);
function playMedia(){
mediaObject.play();
}
即使在点击事件里或者微信事件里用laya的loader.getRes()方法,即使你预加载了,返回的依然会是undefined;直接使用SoundManager.playSound()也无效。使用SoundManager.playMusic()有效;
要使用playSound(),必须要先调用一次playMusic()
即使提前预加载了音频,playMusic()依然会去再加载一次,也就是说,如果需求是立即播放音频,第一次播放都会有延迟
 

Monica - 知识达人

赞同来自:

感谢分享,微信里边播放音乐确实是需要点击一下屏幕才会开始播放,这个不是引擎的问题

要回复问题请先

商务合作
商务合作