Audio Javascript中的音频平移,在屏幕上跟随一个圆圈
我在React中制作了一个按钮,它会在屏幕上沿着一个圆圈左右移动产生声音。音频感觉平移不够,好像两个扬声器都有声音,我能做些什么来增加平移效果吗Audio Javascript中的音频平移,在屏幕上跟随一个圆圈,audio,web-audio-api,audiocontext,Audio,Web Audio Api,Audiocontext,我在React中制作了一个按钮,它会在屏幕上沿着一个圆圈左右移动产生声音。音频感觉平移不够,好像两个扬声器都有声音,我能做些什么来增加平移效果吗 function AudioButton ({seconds,amplitude}){ const [audio, setAudio] = useState(undefined); const [playing, setPlaying] = useState(false);
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>
}
功能音频按钮({秒,振幅}){
const[audio,setAudio]=使用状态(未定义);
const[playing,setPlaying]=useState(false);
useffect(()=>{
中频(音频){
audio.p.pan.value=(数学sin(秒/(60/振幅)))
//audio.p.pan.value=-1;
}
}
);
返回{
如果(!玩){
如果(!音频){
var audioContext=新的audioContext()
var o=audioContext.create振荡器()
var g=audioContext.createGain()
设p=audioContext.createStereoPanner();
o、 连接(g)
g、 连接(p);
p、 连接(audioContext.destination);
g、 连接(audioContext.destination)
o、 频率值=528;
g、 增益值=0.25
//o、 频率。指数RamptoValueAttime(300,audioContext.currentTime+2);
o、 start();
setAudio({
啊,,
G
P
音频语境
});
布景播放(真实);
返回;
}
布景播放(真实);
}否则{
布景播放(假);
中频(音频){
audio.o.stop();
}
setAudio(未定义);
}
}}>{播放?“停止”:“开始”}
}
首先,您可以尝试不将g连接到目标。