javascript - 如何通过 JavaScript 控制浏览器的音量?

标签 javascript audio volume

我想通过 JavaScript 控制音量。

我找到了如何控制音频对象。 但是,我不知道如何控制音量设置。

你能告诉我如何通过 JavaScript 或一些好的模块来控制音量吗?

最佳答案

这是一些 javascript,它为浏览器提供了一个小部件,可以在呈现音频时更改音量...只需在下面更新并使用一些音频文件 (mp3) 填充变量 audio_url,您将其放入与以下代码相同的目录中

<html>
<head>
    <title>render audio with volume control</title>
</head>

<body>

    <p>Volume</p>
    <input id="volume" type="range" min="0" max="1" step="0.1" value="0.5"/>

    <script>

    var audio_context = null;
    var gain_node = null;

    window.AudioContext = window.AudioContext || window.webkitAudioContext;
    audio_context = new AudioContext();

    gain_node = audio_context.createGain(); // Declare gain node
    gain_node.connect(audio_context.destination); // Connect gain node to speakers




    function render_audio() {

        var request = new XMLHttpRequest();

        var audio_url = "your_music.mp3";

        request.open('GET', audio_url, true); // loading local file for now
        request.responseType = 'arraybuffer';

        // Decode asynchronously
        request.onload = function() {

            audio_context.decodeAudioData(request.response, function(buffer) {

                stored_buffer = buffer; // store buffer for replay later

                var source = audio_context.createBufferSource(); // creates a sound source
                source.buffer = buffer;                    // tell the source which sound to play
                source.connect(gain_node);       // connect source to speakers
                source.start(0);                           // play the source now
            });
        };
        request.send();
    }

    // --- enable volume control for output speakers

    document.getElementById('volume').addEventListener('change', function() {

      var curr_volume = this.value;
      gain_node.gain.value = curr_volume;

      console.log("curr_volume ", curr_volume);
    });


    // init
    render_audio();

    </script>

      <body onkeypress="render_audio()">

    <button onclick="render_audio()">play_again</button>

</body>
</html>

关于javascript - 如何通过 JavaScript 控制浏览器的音量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29205255/

相关文章:

ios - AirPlay:通过显示可用设备弹出窗口重定向音频

linux - 使用绑定(bind)卷运行 Docker Jenkins 容器会引发日志文件访问错误

安卓声音到扬声器

audio - 开放音高变化

javascript - 使用 lodash 的 typescript 字符串插值

javascript - 如何在实时图表中显示一个Json随机数?

javascript - 如何拆分字符串,转换为数字和求和

javascript - 在 Ember 数组中,我如何通过索引值访问对象? Ember

flash - 闪光灯如何满足我的音频处理需求?

php - 在 Linux 中使用 SoX 和 PHP