egret 【白鹭引擎】中 iphone 苹果手机微信没有声音

在android 的手机上没有问题  但是在苹果手机的微信中听不到声音 。(ios环境下微信浏览器的音频自动播放问题)

解决方法:

<script>
    function playsound(sound, loop) {
        if (sound == null) {
            console.log('sound err')
            return;
        }
        var times = loop ? 0 : 1;
        if (typeof WeixinJSBridge != 'undefined') {
            WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
                return sound.play(0, times).volume = 0;
            });
        } else {
            return sound.play(0, times).volume = 0;
        }
    }
</script>

 接下来,我们怎么在ts中调用呢?

class SoundManager {
	private static _instance: SoundManager;
	private onOff: boolean = true;//音效总开关
	private music: MusicPlay;//背景音乐

	public static get instance() {
		if (!this._instance) {
			this._instance = new SoundManager();
		}
		return this._instance;
	}
	/**
	 * 播放音乐
	 */
	public playMusic(pKey: string = "", volume = 0.5) {
	}
	//停止播放音乐
	public stopMusic() {
	}
	//构造函数
	public constructor() {
		this.music = new MusicPlay();
	}
	//静音引导后播放可以控制的背景音乐
        //这个方法最好在loading加载完的时候就执行,再所有要播放音乐之前执行才好用
	public playNullSound() {
        //先加载音乐资源,获取到音乐资源,才能调用index.html 里面的方法,
          我这里是在loading的时候提前加载好,所以同步获取资源
		let nullSound: egret.Sound=RES.getRes("nullSound_mp3");
		window["playsound"](nullSound, false);
	}
}
//声音资源加载完成,播放静音,静音引导后播放可以控制的背景音乐
SoundManager.instance.playNullSound();

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值