Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调整ingame中音乐的音量_Javascript_Html_Audio_Html5 Audio - Fatal编程技术网

Javascript 调整ingame中音乐的音量

Javascript 调整ingame中音乐的音量,javascript,html,audio,html5-audio,Javascript,Html,Audio,Html5 Audio,我正在构建一个以音乐为背景的游戏,当你在游戏中前进时,音乐会切换到不同的轨道。问题是有些音轨太吵了。有没有办法调整到我想要的音量 我正在寻找一个解决方案,我不必改变我的整个代码,以匹配声音的某些部分,并手动调整它 提前谢谢你。在我看来,你有两个选择;让游戏中所有音频文件的音量达到相同的水平(均衡、压缩、限制等),或者,如果可用,您可以使用构建限制器并将其连接到音频源 选项1:响度标准化 响度标准化是将音频的平均响度设置到某个级别,这意味着音频文件将对其响度级别进行转换,以使平均响度符合您的要

我正在构建一个以音乐为背景的游戏,当你在游戏中前进时,音乐会切换到不同的轨道。问题是有些音轨太吵了。有没有办法调整到我想要的音量

我正在寻找一个解决方案,我不必改变我的整个代码,以匹配声音的某些部分,并手动调整它


提前谢谢你。

在我看来,你有两个选择;让游戏中所有音频文件的音量达到相同的水平(均衡、压缩、限制等),或者,如果可用,您可以使用构建限制器并将其连接到音频源

选项1:响度标准化

响度标准化是将音频的平均响度设置到某个级别,这意味着音频文件将对其响度级别进行转换,以使平均响度符合您的要求。简单地说,它会降低或增加音量,使声音达到您需要的音量。如果你把你所有的音轨音量调到一定的水平,它们肯定会保持在一定的音量范围内

维基百科建议,这可以通过音频标准化软件来实现;但是,你可以通过谷歌搜索找到其他人

选项2:使用

如果您能够在代码上使用,那么使用简单的。当然,有一套不同类型的限制,但我不打算讨论它们之间的差异和好处

这可以通过将音频源连接到DynamicCompressorNode上来完成

我发现了这个,下面是我从博客中获取的关于如何使用dynamics compressor节点构建限制器的片段

var context=newaudiocontext();
var audio=document.getElementById('audio');
var label=document.getElementById('maximize-db');
var reduce=document.getElementById('reduce');
var source=context.createMediaElementSource(音频);
var preGain=context.createGain();
var limiter=context.createdynamiccompressor();
limiter.threshold.value=0.0;//这是陷阱,留点净空
limiter.knee.value=0.0;//蛮力
限制器。比率。值=20.0;//最大压缩
limiter.attack.value=0.005;//5毫秒攻击
limiter.release.value=0.050;//50毫秒释放
source.connect(preGain);
预紧连接(限制器);
limiter.connect(context.destination);
var dbToGain=函数(db){
返回Math.exp(db*Math.log(10.0)/20.0);
}
变量最大化=(函数(db){
preGain.gain.value=dbToGain(db);
label.textContent=db;
返回参数.callee;
})(0);
var showReduce=(函数(){
reduction.style.width=(dbToGain(limiter.reduction.value)*288)+“px”;
requestAnimationFrame(arguments.callee);
})();
html,正文{
字体大小:12px;
字体系列:“开放式SAN”;
背景:白色;
}
.控制{
填充:6px 16px;
边界半径:5px;
背景#4242;
颜色:#f0;
显示:内联块;
宽度:288px;
空白:nowrap;
}
.控制输入{
宽度:200px;
}
.controls span、.controls输入{
垂直对齐:中间对齐;
填充:0;
保证金:0;
}
#减少{
利润上限:4倍;
边缘底部:2px;
宽度:288px;
高度:2倍;
背景:绿色;
}
a{
文字装饰:无;
颜色:#666;
}
p{
颜色:#CCC;
}
音频{
宽度:320px;
}
Web音频硬限制器
最大化
6分贝
三个保罗
您的浏览器不支持音频标记。

在Safari中不起作用。

如果使用
@vahdet,请使用
volume
属性这是我遇到的问题,我没有使用@IGotManyQuestions是的。Quote:
this.sound=document.createElement(“音频”)