gpt4 book ai didi

javascript - 在 Javascript 中检查麦克风音量

转载 作者:太空狗 更新时间:2023-10-29 13:19:42 30 4
gpt4 key购买 nike

我正在尝试制作一款需要访问用户麦克风的小游戏。我需要能够检查是否连接了麦克风,如果连接了,则检查在游戏过程中通过麦克风发出的声音的音量。我该怎么做?

最佳答案

在必须自己解决之后,稍微更详细的答案可能会帮助其他人看这里。

以下代码将根据麦克风音量注销大约 0 到 100 之间的数字。

navigator.mediaDevices.getUserMedia({
audio: true,
video: true
})
.then(function(stream) {
const audioContext = new AudioContext();
const analyser = audioContext.createAnalyser();
const microphone = audioContext.createMediaStreamSource(stream);
const scriptProcessor = audioContext.createScriptProcessor(2048, 1, 1);

analyser.smoothingTimeConstant = 0.8;
analyser.fftSize = 1024;

microphone.connect(analyser);
analyser.connect(scriptProcessor);
scriptProcessor.connect(audioContext.destination);
scriptProcessor.onaudioprocess = function() {
const array = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(array);
const arraySum = array.reduce((a, value) => a + value, 0);
const average = arraySum / array.length;
console.log(Math.round(average));
// colorPids(average);
};
})
.catch(function(err) {
/* handle the error */
console.error(err);
});

如果你有这个数字 jquery 来设置颜色 block 的样式。我在下面提供了一个示例函数,但这是简单的部分。只需取消注释颜色 pids 函数。

function colorPids(vol) {
const allPids = [...document.querySelectorAll('.pid')];
const numberOfPidsToColor = Math.round(vol / 10);
const pidsToColor = allPids.slice(0, numberOfPidsToColor);
for (const pid of allPids) {
pid.style.backgroundColor = "#e6e7e8";
}
for (const pid of pidsToColor) {
// console.log(pid[i]);
pid.style.backgroundColor = "#69ce2b";
}
}

为了确保这个答案尽可能详细,我还在下面附上了我的 html 和 css,所以如果您希望启动并运行一个工作示例,您只需复制 js html 和 css。

html:

<div class="pids-wrapper">
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
<div class="pid"></div>
</div>

CSS:

.pids-wrapper{
width: 100%;
}
.pid{
width: calc(10% - 10px);
height: 10px;
display: inline-block;
margin: 5px;
}

毕竟你最终会得到这样的东西。 enter image description here

关于javascript - 在 Javascript 中检查麦克风音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322681/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com