音量增加,直到在Firefox中使用Web Audio剪辑

时间:2014-12-14 13:11:41

标签: html5 firefox web-audio

我尝试使用Web Audio API进行简单播放:

<html>
<head>
    <title>Test</title>
</head>

<body>
    <audio id="player" src="audio/song.mp3"></audio>

    <script>
    try {
        audioContext = new (window.AudioContext || window.webkitAudioContext)();
    }
    catch (e) {
        alert('Web Audio API is not supported in this browser');
    }

    var audioElement = document.getElementById("player");
    audioElement.addEventListener('canplay', function() {
        var source = audioContext.createMediaElementSource(audioElement);
        var gainNode = audioContext.createGain();
        gainNode.gain.value = 0.3;
        source.connect(gainNode);
        gainNode.connect(audioContext.destination);
        audioElement.play();
    });

    </script>
</body>
</html>

这显然可以在Chrome中使用,但不是在Firefox中。在Firefox中发生的事情是,音量逐渐增加到某些极端水平,其中剪辑开始发生(wtf?)。如果这里没有增益节点,它将简单地从可能的最大音量开始播放。

我很困惑为什么这样一个基本任务会在Firefox中引起如此荒谬的问题。由于这可能是我的系统或最新的Firefox的问题,如果有人测试这个,我会很高兴。 我使用的是Firefox 34.0.5。

1 个答案:

答案 0 :(得分:1)

&#34; canplay&#34;可以多次开除。这意味着您在Web Audio图形中多次提供HTMLMediaElement,并且由于PCM完全相关,因此会发生剪切。 iirc,Chrome有一个错误,只有第一个HTMLMediaElement通过图表提供(尽管我可能错了),这可以解释这一点。