簡體   English   中英

執行 function 時,我僅在 Safari 瀏覽器上收到錯誤

[英]I am getting an error only on Safari Browser when executing a function

在我的網站上,這是一個小猜謎游戲,我在執行 function 時僅在 Safari 瀏覽器上收到錯誤,我不知道為什么。

錯誤是以下消息:

未處理的 Promise 拒絕:NotSupportedError:不支持該操作。 (匿名函數)(rejectPromise)

這是 function:

$("#repeat_btn").addClass("repeat_hover");
    
    if (diff_lvl == 1) {
        $.post('played_games.php?diff=1', {game:"voice",post_id:<?php echo $usr_id; ?>}, function (data) {
            $('#result').html(data);
        });                                       
    } else if (diff_lvl == 3) {
        $.post('played_games.php?diff=3', {game:"voice",post_id:<?php echo $usr_id; ?>}, function (data) {
            $('#result').html(data);
        }); 
    }
    
    var count = array_voices_hashes.length;

    var newpic_onload = Math.floor((Math.random() * count) + 0);
    
    var randompic_onload = array_voices_hashes[newpic_onload];
    document.getElementById("voice").src = 'sounds/' + randompic_onload + '.ogg';
    
    document.getElementById("voice").play();
    cdreset();
    countdown();

有誰知道是什么造成了錯誤? 提前致謝!

我不是 100% 確定,但這可能是由於安全策略首先通過用戶操作啟動音頻。 嘗試讓用戶在首次打開網站時先點擊某些內容。 附上所有必要的音頻文件。 播放它,立即停止它,之后您應該能夠從腳本自動播放音頻文件。 您需要事先了解您的來源。 我建議將所有音頻文件列為 html5 標簽,您在腳本中通過 id 引用這些標簽。

document.body.addEventListener('touchstart', function() { if(audiosWeWantToUnlock)
{  for(let audio of audiosWeWantToUnlock) {
   audio.play()
   audio.pause()
   audio.currentTime = 0  }  audiosWeWantToUnlock = null}}, false)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM