iOSでaudioがオーディオを正常に再生できない問題を解決-1


シーン
微信ブラウザで「ユーザーが要素をクリックし、指定されたオーディオを再生する」ことを実現したい.
問題は一部iOS携帯電話でオーディオが正常に再生されないこと.テストでは、iOS 12のバージョンと以下のバージョンで再生に問題がある可能性があることがわかりました.
解決策:
function baseMp3PlayIOS(id) {
    let audio = document.getElementById(id),
        my_play = function(){
            audio.play();
            document.removeEventListener("touchstart",my_play, false);
        };
    audio.play(); 
    //     WeixinJSBridgeReady                    
    document.addEventListener("WeixinJSBridgeReady", function () {//  
        my_play();
    }, false);
    document.addEventListener('YixinJSBridgeReady', function() {//  
        my_play();
    }, false);
    //    touchstart   ,               
    document.addEventListener("touchstart",my_play, false);
}

//        
baseMp3PlayIOS('audioBoom')

注意:
  • 以上のbaseMp3PlayIOSメソッドを使用すると、iosではユーザが2回の再生イベントをトリガーする可能性があり、ページのロードが完了した後に1回トリガーする.その後ユーザtouchのときにもう一度touchstartの再生イベントがトリガーされる.
  • このイベントを呼び出すと、リスニングが開始されるWeixinJSBridgeReadyYixinJSBridgeReadytouchstartイベント
  • だから実際の状況に応じて削除できるtouchstartイベント.

  • おすすめ読書
  • audioタグを使用したオーディオ再生
  • iOSでaudio(ajaxで)がオーディオを再生できない問題を解決-2