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 (将#修改为@)