Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

AudioAPI 3D音效

  声音不仅要播放,还得有人听!AudioAPI中自带了3D音效的配置。它虚拟了一个收听者来让声音具有方向感、方位感、距离感、动态感。它还配置了默认的音速和多普勒参数,让声音具有传播延迟性甚至计算上多普勒效应带来的频率差,使效果更逼真。
  演示:[实例] <script>
var AudioContext=AudioContext||webkitAudioContext;
var context=new AudioContext;
//加载并播放音乐
var audio=new Audio("SuperMario.mp3");
var source=context.createMediaElementSource(audio);
var panner=context.createPanner();
//设置声源属性
panner.setOrientation(0,0,0,0,1,0); //方向朝向收听者
var a=0,r=8;
setInterval(function(){
  //然声源绕着收听者以8的半径旋转
  panner.setPosition(Math.sin(a/100)*r,0,Math.cos(a/100)*r);
  a++;
},16);
//连接:source → panner → destination
source.connect(panner);
panner.connect(context.destination);
//播放
audio.play();
</script>
  可以用createPanner方法来创建一个panner节点,声音通过这个节点后就会设置位置。这个节点上提供了setPositionsetOrientationsetVelocity,这些方法来设置声源的位置、朝向、运动。(详见 PannerNode)。
  不仅声源可以设置运动,收听者也可以。同样使用这些方法,但它是在context.listener对象上设置的。(详见 AudioListener
网名:
54.146.214.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^