如何设置 HTML5 音频的响度
How to set the loudness of HTML5 audio?
在我正在制作的HTML5游戏中,当事物发生碰撞时,我会发出"砰砰"的声音。但是,这有点不现实。无论物体的速度如何,它们总是会发出相同的、相对响亮的"砰"声。我想做的是让声音的响度取决于速度,但我该怎么做呢?我只知道如何播放声音。
playSound = function(id)
{
sounds[id].play();
}
sounds
是一个充满new Audio("url")
的数组。
使用音频元素的音量属性。从 W3:
元素的有效媒体体积是体积,解释为相对 到 0.0 到 1.0 的范围,其中 0.0 表示静默,1.0 表示 最响亮设置,介于两者之间的值响度增加。范围 不必是线性的。最响亮的设置可能低于系统的 尽可能响亮的设置;例如,用户可以设置 最大音量。
例如:sounds[id].volume=.5;
您甚至可以调整增益并使音量播放比 100% 大。 您可以使用此功能放大声音:
function amplifyMedia(mediaElem, multiplier) {
var context = new (window.AudioContext || window.webkitAudioContext),
result = {
context: context,
source: context.createMediaElementSource(mediaElem),
gain: context.createGain(),
media: mediaElem,
amplify: function(multiplier) { result.gain.gain.value = multiplier; },
getAmpLevel: function() { return result.gain.gain.value; }
};
result.source.connect(result.gain);
result.gain.connect(context.destination);
result.amplify(multiplier);
return result;
}
您可以执行以下操作将初始放大设置为 100%:
var amp = amplifyMedia(sounds[id], 1);
然后,如果您需要声音响亮两倍,您可以执行以下操作:
amp.amplify(2);
如果你想减半,你可以这样做:
amp.amplify(0.5);
该函数的完整文章可在此处找到:http://cwestblog.com/2017/08/17/html5-getting-more-volume-from-the-web-audio-api/
您可以通过设置来调节音量:
setVolume = function(id,vol) {
sounds[id].volume = vol; // vol between 0 and 1
}
但是,请记住,在设置音量和生效之间有一小段延迟。您可能会听到声音在上一个音量开始播放,然后跳到新音量。
相关文章:
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 动态加载的自定义javascript/jQuery/HTML5音频播放器的问题
- <的自定义进度条;音频>并且<进度>HTML5元素
- Html5音频时间更新精度
- HTML5音频如何防止浏览器麦克风拾取所有声音
- Javascript::通过HTML5音频播放器播放列表播放多个音频文件
- HTML5、CSS3和/或JS中旋转CD上的音频播放器
- 需要一个与HTML5<音频>.哪些没有't创建或销毁视图
- 如何在HTML5画布上呈现音频波形
- HTML5音频循环出现问题
- 使用HTML5流式传输加密版权内容(音频/视频)
- 音频HTML5检查所有音频元素是否已完全加载
- 带有jQuery的音频HTML5播放下一首曲目
- 为什么"结束”;音频html5的事件触发不止一次
- 音频HTML5自动播放WebWorks
- 播放音频HTML5功能仅适用于Chrome
- 无间隙循环音频html5
- 从音频html5标签下载
- 将可自定义的进度条添加到音频 HTML5 付款人