背景:ユーザーが背景にフォームを送信するH5ページでは、結果が楽屋成功返され、自動的に起動し、バックグラウンドで音楽を再生
出现的问题:在安卓手机上正常,iOS中没有反应
オンラインで検索、いくつかは、後に、ユーザが対話をしない限りiOSのは、自動演奏の音楽を許可していないので、ということを学んだ後
解決策:
1.ページはちょうどそれが比較的容易なハンドルで、自動的にサウンドを再生する必要がロードされ、そして達成するために、マイクロチャネルのAPIを提供するために使用することができるならば(それはいくつかの変更を行うために内部でなければなりません)
// 通过config接口注入权限验证配置后, 在 ready 中 play 一下 audio
function autoPlayAudio1() {
wx.config({
// 配置信息, 即使不正确也能使用 wx.ready
debug: false,
appId: '',
timestamp: 1,
nonceStr: '',
signature: '',
jsApiList: []
});
wx.ready(function() {
document.getElementById('bgmusic').play();
});
}
参考:正しい方法でマイクロチャネルのiOSブラウザのHTML5オーディオ(音楽)で自動再生
2.は、特定の時刻にバックグラウンドミュージックを演奏する必要があります
iOS版が制限されているので、それが唯一の相互作用の実装を介してユーザとの希望、使用HTMLはコールバック関数の中で、それに演奏touchstartイベントを追加するために、それは注意が必要です。
一度だけそれに触れるので、あなたがイベントを登録する1つの方法を使用することができますので、実際のユーザーとの対話が応答します取得するには、トリガjqueryのトリガーによって同じ存在することはできません
audio.play(); //安卓手机可以直接播放
// 为iOS做兼容,为了保险起见,触摸事件都给他加上
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
var noPlay = true;
$('html').one('touchstart',function(){
if(noPlay) {
audio.play();
noPlay = false;
}
})
$('html').one('touchmove',function(){
if(noPlay) {
audio.play();
noPlay = false;
}
})
$('html').one('touchend',function(){
if(noPlay) {
audio.play();
noPlay = false;
}
})
バックグラウンドミュージックがここで演奏する必要があるが、私はページを触れない場合はユーザ体験は良い十分ではありません、それが再生されていない、あなたがより良い方法を持っている場合は、私のQQを追加することができます:32319149ああ話し合う:)
参考記事:
H5ケーススタディ:問題が自動的に再生されないH5のBGMを解く
のiOSオーディオの下で解決すると、自動的に再生されません