微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript 中的音频平移,跟随屏幕上的圆圈

如何解决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 举报,一经查实,本站将立刻删除。