作家
登录

HTML5音频API Web Audio

作者: 来源: 2017-08-09 17:37:58 阅读 我要评论

'./sounds/music.mp3'); 

AudioNode

音频节点接口是一个音频处理模块。包含音频袈浯,音频输出,中心处理模块。

办法

AudioNode.connect()

链接两个 AudioNode 节点,把音频年腋荷琐 AudioNode 节点输出到另一个 AudioNode 节点,形成一个音频通道。

AudioNode.disconnect()

把 AudioNode 节点与其他节点断开链接。

AudioBufferSourceNode

音频袈浯竽暌剐多种,这里只介绍 buffer 的音频袈浯,buffer 的音频袈浯经由过程 AudioContext 接口的 createBufferSource 办法来创建。音频袈浯节点持续 AudioNode 音频节点。

  1. let bufferSource = audioContext.createBufferSource(); 

创建了 AudioBufferSourceNode 对象后,把 buffer 格局的音频数据赋值给 AudioBufferSourceNode 对象的 buffer 属性,此时音频已经传递到音频袈浯,可以对音频进行处理或输出。

办法

AudioBufferSourceNode.start(when[, duration])

开端播放。

  • when:延迟播放时光,单位为秒。
  • offset:定位音频到第几秒开端播放。
  • duration:大年夜开端播放停止时长,当经由设置秒数后主动停止音频播放。

AudioBufferSourceNode.stop([when])

  • when:延迟停止时光,单位为秒。

AudioDestinationNode

音频终点是经由过程 AudioContext 接口的 destination 属性拜访的。音频终点持续 AudioNode 音频节点,

AudioDestinationNode 节点无法再把音频信息传递给下一?音频节点,即无法再链接其他音频节点,因为他已经是终点,没有输出,也可以懂得为他本身就是输出。

  1. let audioDestinationNode = audioContext.destination; 

此时我们有音频起点 AudioBufferSourceNode 和音频终点 AudioDestinationNode ,应用 AudioNode.connect() 办法把起点和终点链接起来,就形成了一条有输入输出的音频通道,可以把音频直接播放出来。

  1. bufferSource.connect(audioDestinationNode); 

HTML5音频API的重要框架和工作流程如下图,在 AudioContext 音频高低文中,把音频文件转成 buffer 格局,大年夜音频袈浯 source 开端,经由 AuidoNode 处理音频,最后达到 destination 输出音乐。这里形成了一个音频通道,每个模块经由过程 connect 办法链接并传送音频。

GainNode

  1. let gainNode = audioContext.createGain(); 

把音频袈浯、音频输出和音频处理模块链接一路,形成可控制音量大年夜小的音频。

  1. bufferSource.connect(gainNode); 
  2.  
  3. gainNode.connect(audioDestinationNode); 
  4.  
  5. let controlVolume = value => { 
  6.  
  7. gainNode.gain.value = value); 
  8.  
  9.  
  10. // 两倍音量播放 
  11.  
  12. controlVolume(2); 

BiquadFilterNode

表示一个简单的低频滤波器,可控制声调。它是一个 AudioNode 类型的音频处理模块。

  1. let filterNode = audioContext.createBiquadFilter(); 

返回 AudioDestinationNode 对象,表示当前 AudioContext 中所有节点的最终节点,一般表示音频衬着设备。

输出一个变调的音频:

  1. bufferSource.connect(filterNode); 
  2.  
  3. filterNode.connect(audioDestinationNode); 
  4.  
  5. let controlFrequency = function(value) { 
  6.  
  7. filterNode.frequency.value = value; 
  8.  
  9.  
  10. // 音频为1000变调 
  11.  
  12. controlFrequency(1000); 

  推荐阅读

  IT的身份危机:随着业务的发展,如何保持其必要性

对信息技巧的价值不雅及其在组织内的地位的看法赓续地产生着变更。下面来看看若何保持相干性。相反,指出企业高管可能没有留意到的问题。Brady说:“你的人际关系袈浣好,你懂得营业>>>详细阅读


本文标题:HTML5音频API Web Audio

地址:http://www.17bianji.com/lsqh/36631.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)