【发布时间】:2021-03-10 07:49:18
【问题描述】:
按照这篇文章,我正在尝试将音频元素的音量设置为 1 以上。
https://cwestblog.com/2017/08/17/html5-getting-more-volume-from-the-web-audio-api/
我需要能够设置不止一次,所以我设置了一个全局数组来存储不同的结果,以便我可以根据参与者进行调整。
这似乎不起作用,对我来说,当增益设置时我无法分辨出任何区别,我做错了什么吗?
window.audioGainParticipants = [];
function amplifyMedia(participant_id, mediaElem, multiplier) {
const exists = window.audioGainParticipants.find(
(x) => x.participant_id === participant_id
);
let result = null;
if (exists) {
result = exists.result;
} else {
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);
window.audioGainParticipants.push({ participant_id, result });
}
result.amplify(multiplier);
}
我这样称呼...
const audioElement = document.getElementById(
`audio-${participantId}`
);
amplifyMedia(
`audio-${participantId}`,
audioElement,
volume // number between 0-2
);
【问题讨论】: