簡體   English   中英

如何將此代碼應用於我的音頻

[英]How to apply this code to my audio

編輯*我這樣做:

   if (vol > 0) {
     vol -= 0.05;
     document.getElementById("introMusic").volume = vol;
   }

我收到此錯誤:未捕獲的錯誤:IndexSizeError:DOM異常1 preGameContentObject.js:102(匿名函數)。 它會降低聲音,直到聲音非常低,然后繼續播放。

我從來沒有用javaScript做過音頻,而且非常菜鳥。 這個問題幾乎令人尷尬。 我在該網站上發現了這項強大的功能,可以淡出我的乒乓球比賽的開場曲。

我通過此功能開始音樂:

setUpGame: function() {
        this.setUpPaddles();
        this.setUpBall("left");
        preGameContent.getMouseHover();
        preGameContent.drawButtons();
        preGameContent.getMouseClick();
        document.getElementById('introMusic').play();
    },

那是最佳實踐嗎? 有用。

我想知道如何將此功能應用於我的代碼:

// Initial volume of 0.20
// Make sure it's a multiple of 0.05
var vol = 0.20;
var interval = 200; // 200ms interval

var fadeout = setInterval(
  function() {
    // Reduce volume by 0.05 as long as it is above 0
    // This works as long as you start with a multiple of 0.05!
    if (vol > 0) {
      vol -= 0.05;
      audio.setVolume(vol);
    }
    else {
      // Stop the setInterval when 0 is reached
      clearInterval(fadeout);
    }
  }, interval);

我知道在哪里調用它,因為我有一個“如果單擊游戲按鈕-啟動游戲”這種類型的功能,並且可以在其中彈出它。 我在哪里將其引用到我的“ introMusic”元素ID? 謝謝!

我改用它是因為它沒有錯誤(需要稍微重構):

function fadeVolume(volume, callback)
                    {
                        var factor  = 0.02,
                            speed   = 50;
                        if (volume > factor)
                        {
                            setTimeout(function(){
                                fadeVolume((document.getElementById("introMusic").volume -= factor), callback);         
                            }, speed);
                        } else {
                            (typeof(callback) !== 'function') || callback();
                        }
                    }
                    fadeVolume(document.getElementById("introMusic").volume, function(){
                        console.log('fade complete');
                        document.getElementById("introMusic").pause();
                        document.getElementById("introMusic").currentTime = 0;
                    });

要停止音頻,我使用了.pause(); 並重置當前時間,因為.stop(); 不工作。 有人知道為什么嗎? 謝謝。

暫無
暫無

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

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