如何解决Javascript 中的音频平移,跟随屏幕上的圆圈
我在 React 中制作了一个按钮,该按钮会在屏幕上围绕一个圆圈向左和向右发出声音。音频感觉它的平移不够,就像它仍然从两个扬声器中传出一样,我能做些什么来增加平移效果。
function AudioButton ({seconds,amplitude}){
const [audio,setAudio] = useState(undefined);
const [playing,setPlaying] = useState(false);
useEffect(()=>{
if (audio){
audio.p.pan.value =(Math.sin(seconds / (60/amplitude)))
//audio.p.pan.value=-1;
}
}
);
return <button onClick={()=>{
if (!playing){
if (!audio){
var audioContext = new AudioContext()
var o = audioContext.createOscillator()
var g = audioContext.createGain()
let p = audioContext.createStereoPanner();
o.connect(g)
g.connect(p);
p.connect(audioContext.destination);
g.connect(audioContext.destination)
o.frequency.value = 528;
g.gain.value =0.25
//o.frequency.exponentialRampTovalueAtTime(300,audioContext.currentTime + 2);
o.start();
setAudio({
o,g,p,audioContext
});
setPlaying(true);
return;
}
setPlaying(true);
}else {
setPlaying(false);
if (audio){
audio.o.stop();
}
setAudio(undefined);
}
}}>{playing?"Stop":"Start"}</button>
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。