加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

IOS下微信6.5.3版本 H5 audio/video播放问题

发布时间:2020-12-15 01:17:03 所属栏目:C语言 来源:网络整理
导读:需求:用户摇动手机播放audio 问题1:在IOS最新的微信6.5.3上,无法播放,在老版本或者安卓版上可以 原因:这个版本的IOS微信对H5的语音播放貌似做了严格的控制,一定需要有一个用户事件触发播放之后,才允许代码控制语音。而摇动手机的事件,是JS库模拟的一

需求:用户摇动手机播放audio

问题1:在IOS最新的微信6.5.3上,无法播放,在老版本或者安卓版上可以
原因:这个版本的IOS微信对H5的语音播放貌似做了严格的控制,一定需要有一个用户事件触发播放之后,才允许代码控制语音。而摇动手机的事件,是JS库模拟的一个事件,非用户事件,无法完成语音的播放。
解决方案:发现微信SDK的ready事件在其自带浏览器中被当成了用户事件级别,因此这个事件的处理代码中能够有效播放音频。因此

wx.ready(function () {
  playAudio()
})

这样,之后的shake事件能够播放音频。但是,最好能在ready中静默的播放音频,毕竟这里不是用户在摇动手机。

问题2:IOS中无法对audio进行音量控制,即audio.volume = 0无效。因此这段代码无法完成静默播放:

wx.ready(function () {
  setAudioVolumeAsZero()
  playAudio()
})

解决方案:

wx.ready(function () {
  playAudio()
  pauseAudio()
})

必须先playpause一下,不能够直接play,否则还是无法播放

全部代码:

function playKaka (mute) {
    var kaka = document.getElementById('kaka')
   kaka.play()
   mute && kaka.pause()
}

function initWX () {
wx.config()
wx.ready(function () {
playKaka(true)
})
}

function initShakeEvent () {
var shake = new Shake()
window.addEventListener('shake',function () {
playKaka()
},false)
shake.start()
}

$(function () {
initWX()
initShakeEvent()
})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读