说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

不只是Chrome,Firefox也开始支持Web Audio API

HTML文档下载 WORD文档下载 PDF文档下载
Web Audio API是Javascript中主要用于在网页应用中处理音频请求的一个高级应用接口。目前,Firefox Nightly和Firefox Aurora两个版本已经基本支该持API。

Mozilla公司称,他们一直在为Firefox支持Web Audio API而努力,而今这个愿望就快达成了。目前,Firefox Nightly和Firefox Aurora两个版本已经基本支该持API。Web Audio提供了诸多炫酷的功能,开发者可以基于此创建应用 、游戏,可以说基本上任何一款应用都需要先进的音频处理。


Web Audio API是JavaScript中主要用于在网页应用中处理音频请求的一个高级应用接口,这个API目的是用于让最新技术与传统的游戏音频引擎的综合处理相兼容,也即尽力提供一些桌面音频处理程序的要求。

Web Audio API特性包括:

  • 查看音频播放期间调度事件发生的确切时间;
  • 支持各种类型的音频过滤波器以实现各种效果,包括回声、消除噪音等;
  • 支持利用合成声音(Sound synthesis)创建电子音乐;
  • 支持3D位置音频模拟效果,比如某种声音随着游戏场景而移动;
  • 支持外部输入的声音与WebRTC 进行集成(调用WebRTC,在你的设备中增添吉他声),或者在WebRTC中调用其他地方传输过来的声音;
  • 利用音频数据分析创造良好的可视化声音等。

代码示例

下面是利用Web Audio创建应用的一个简单示例。试想下,当你在创建一款游戏,你想要玩家在点击游戏画布时(game canvas)呈现枪声的声音。为了确保你不会受网络延迟、音频解码器延迟等影响,你可以使用Web Audio来加载音频作为游戏加载进程缓冲区的一部分。

为了营造一个整洁的声音效果,我们可以在点击鼠标时使用循环声音并在鼠标松开后创建渐变效果。下面的这段代码示例演示了这一效果:

// Load the sound file from the networkvar decodedBuffer;var ctx = new AudioContext();var xhr = new XMLHttpRequest();xhr.open("GET", "gunshot.ogg", true);xhr.responseType = "arraybuffer";xhr.send();xhr.onload = function() {  // At this point, xhr.response contains the encoded data for gunshot.ogg,  // so let's decode it into an AudioBuffer first.  ctx.decodeAudioData(xhr.response, function onDecodeSuccess(buffer) {    decodedBuffer = buffer;  }, function onDecodeFailure() { alert('decode error!'); });}; // Set up a mousedown/mouseup handler on your game canvascanvas.addEventListener("mousedown", function onMouseDown() {  var src = ctx.createBufferSource();  src.buffer = decodedBuffer;                                      // play back the decoded buffer  src.loop = true;                                                 // set the sound to loop while the mouse is down  var gain = ctx.createGain();                                     // create a gain node in order to create the fade-out effect when the mouse is released  src.connect(gain);  gain.connect(ctx.destination);  canvas.src = src;                                                // save a reference to our nodes to use it later  canvas.gain = gain;  src.start(0);                                                    // start playback immediately}, false);canvas.addEventListener("mouseup", function onMouseUp() {  var src = canvas.src, gain = canvas.gain;  src.stop(ctx.currentTime + 0.2);                                 // set up playback to stop in 200ms  gain.gain.setValueAtTime(1.0, ctx.currentTime);  gain.gain.linearRampToValueAtTime(0.001, ctx.currentTime + 0.2); // set up the sound to fade out within 200ms}, false);

Web Audio API还未成为W3C标准

谷歌声称,Chrome是首个实现Web Audio API,但对于WebKit核心的浏览器,需要加上webkitAudioContext的前缀。Mozilla表示,其一直在与W3C Audio工作小组讨论API问题,并试图解决API早期版本存在的一些问题。也就是说,打破代码的向后兼容性能,即解决webkitAudioContext前缀问题。值得一提的是,很多Web Audio API功能,比如说创建AudioNodes 或者是解码音频文件,都是采用AudioContext的方法。AudioContext(W3C)是一种管理、播放声音的对象。

如果你也想开发音乐应用或者游戏,不妨参考how toport those applications to the standard API;此外,webkitAudioContext monkeypatch 能够帮助你自动处理一些变化以及如何在API标准中实现webkitAudioContext。

Firefox计划

如今,Firefox已实现了Web Audio API标准。如果你是一名Web开发者对创建先进的音频上感兴趣,不妨查看Mozilla开发团队的这篇基于AudioContext的Porting webkitAudioContext code或许对你有帮助。

Mozilla表示,目前正在研究台式机及Android设备上的Firefox 24支持Web Audio。Mozilla称,除非是遇到什么特殊情况,否则不会延迟发布时间,但目前开发者可以在Nightly和Aurora两个版本中使用大部分API。

英文出自:Mozilla

【CTO讲堂】无社交,不App!——为App加载强大的通讯社交引擎 【探秘ES6】系列专栏(七):箭头函数 【前端框架】Backbone.js在大型单页面应用中的应用实践 【探秘ES6】系列专栏(六):解构赋值 《近匠》TestBird,专注的手游自动化云测试平台 【探秘ES6】系列专栏(八):JS的第七种基本类型Symbols 专访李林锋:我与Netty那些不得不说的事 手把手教学:巧用Core Data和RubyMotion开发iOS应用 《近匠》琥珀天气,精细化打磨征服Google Play 【CTO讲堂】人工智能到底能为我们带来什么? Linksys再度回归中国市场,主推智能路由 Windows 10:全平台战舰与移动化破冰——微软(中国)操作系统工程院院长谢育涛专访 专访友盟CEO叶谦:深挖海量终端用户数据的价值 七牛资深前端工程师马逸清:前端测试探索实践 实战iOS 9:开发者必须掌握的三种搜索API 腾讯Bugly干货分享:浅谈Swift在实际项目中的应用 【前端人生】ThoughtWorks黄峰达:利用横向扩展方式,快速学习前端新框架 这是前端最好的时代——论前端的“三化”建设 游戏引擎网络开发者的64做与不做(一):客户端方面 六问七牛CDN:打造融合CDN管理服务平台 《近匠》Wilddog野狗,跨平台的实时通信云服务 【CTO讲堂】招人不易留人更难——创业团队要闯哪些关? iOS UIView动画实践(四):过渡与伪3D动画 日程全公布|年度人工智能技术精英聚会 7月26-27相约北京 TypeScript 1.5发布,支持大量ES6新特性 快快快!27个提升效率的iOS开源库推荐 《近匠》Maxense,“云+传感”推动产业变革 【探秘ES6】系列专栏(九):使用Babel和Broccoli 2015年Postgres全球开发者大会参会总结 英特尔硬享公社启动“创意原型拍卖” 对接创意与商机 详解Swift 2.0(一):苹果做的25项改变 如何做"标签窗口"????请高手明示!! 急救!怎样用shell 命令读取 *.chm 格式的帮助文件? 请教各位高人哪种51单片机抗干扰性能好点。 回答就有高分!一个简单的问题! 急!Word档案变成X档案了!-------请微软专家也过来帮忙 双重系统引导的问题 现在网上还有没有好的免费个人主页空间?最好支持asp等等,空间小点没关系,高分求! 请问什么地方有PPP over Ethernet(PPPoE)协议 技术资料!!! 请问为何我的程序在Release版本下出错? 再帮忙看看这段代码,即使密码正确也显示"错误:请确认阁下的身份!" 怎么回事啊? 请教这个API(ShowWindow)怎么使用? 谁能告诉我 virtual(虚) 析构函数目的何在干什么用的? 救急 装一个rose要多大空间啊 关于CJ60库实现Visual stduio的界面的问题! 请问要实现在空表上建立数据时,如何做到text1.text能显示“1000”,即Number的“标识种子”值! 这个UDL文件错在哪? 推荐一篇文章《麦子的颜色》 大家来灌水. vc service pack? 关于聊天室的界面 c++库函数的头文件有.h和没有有什么区别?为什么c++的库函数在VC很多不能用,怎么办? 可以在dll里面放SDI框架并调用吗? MIDAS中,怎样通过Client.exe生成MS Sql2000数据库?(就像《管家婆》那样,运行一次客户端,输入数据库的名称,就会自动在SQL Server2000 如何查找一个对话框的owner窗口? 我应该选择VC还是C#??? 在系统启动时至少有一个服务或驱动程序产生错误,详细信息,请使用事件查看器查看事件日志 操作系统是如何发现新插入的设备的? 关于对Com1,Com2读取条形码的编程 帮个忙,先,谢了! 接着那个堆栈问题,创建了,试验了。但应用时出现了对创建错误? 我想在对话框上输出一个char数组,用什么方法比较好????????????? 怎样移动较大副图片的时候避免或者尽量减少闪动? 怎么把网络编程和数据库联系起来 如何贴背景透明的按钮?急,急,在线等待!!! 奇怪了! 请问如何获得居于网中一个工作组下的所有计算机?? 还是一个dll内部变量的问题。 怎么回事? 送分! 大家看看 请问MSDN的帮助怎么获得 怎么样获得一同名text表单域的值? **C++语言的设计和演化** 图书好贵呀!!! 求表达式正确与否的校验算法 怎样控制DllMain?在哪里可以编辑这个函数? 同一个句柄对于所有进程是否一样? 我的red hat linux8 怎么才能配置声卡 如何判断一个字符串是否是常数 《Java与模式》一书已经出版 --- 作者 各为高手,如何能够看到我打开网页的session的值 The tie matches his shirt veryThe tie matches his shirt very well 同义句 The tie ___ ___ ___ his Shirt 有关植物的成语至少一百个 修改病句. 李红的写作水平有了明显的进步. 英国小男孩.用英语表达. 世界上什么地区一年四季如春? 蚕豆、青菜、黄瓜、冬瓜、番茄、苹果、橘子、葡萄、桃子、荔枝属于被子植物的有哪些?判断的理由是什么 释迦牟尼佛和如来佛是一个佛吗?佛祖是谁? 跟植物有关的成语 香蕉 苹果 桔子 西红柿 荔枝 哪个是不同类的词 佛陀为什么能发现宇宙人生的真相?还有他发现的东西真的是真理?那默罕默德也是先知,为什么他们两个发现的真相不同?一个说神不存在,一个说神存在.他们到底谁对谁错?真相不可能有两个吧 有哪些有关植物的成语 They_ to be here an hour ago.A:suppose B:supposed C:were supposed D:are supposed应该选择哪项,原因是什么!谢谢各位 什么是climate change 与植物有关的成语、 菊花一般要多久才开花 man相对的单词是什么 带有植物的成语 急需 谢谢了 请问你的四级成绩出来了吗?你涂的答题卡有没有问题? 这首诗运用了象征手法,请指出象征的对象,体会诗的深刻含义 诗,在天晴的时候在天晴了的时候 在天晴了的时候, 该到小径中去走走; 给雨润过的泥路, 一定是凉爽又温柔; 炫耀着新绿的小 首钢实业在曹妃甸和别的公司合作的包装材料公司叫什么名字 选择重音位置与其它3个不同的单词A.brigeB.pictureC.cupboardD.excuse 用什么方法可以又快又好的记住词语解释 欧洲各国的语言是不是都很类似? tout等四词作泛指形容词,tout ceci est peu important,这一切都不重要.应该是复数,tout是单数 Both of them ---- the sports meeting and did very wellA、took part in B、played for C、joined 请帮我把这句翻译成英文:那个未来或许没你,但有上课谈的理想. 从四个选项中选出一个重音位置与其他三个不同的单词()1.A.palace B.country C.capital D.today ( ) 2.A.enjoy B.bathroom C.meter D.message ( ) 3.A.Russian B.Holloween C.homework D.usually( ) 4.A.geography B.biology C.English D.be Do you still remember meeting with him in Beijing?分析一下句子结构好吗 马尾松与黑松的区别,怎样区分马尾松与黑松~ tout等四词作泛指形容词,tout ceci est peu important,这一切都不重要.应该是附属,tout是单数怎么能代表? 如使秋天开花的菊花在“五一”开花,处理的措施是A.增加光照强度B.降低光照强度C.增加光照时间D.增加黑暗时间 明天李红母亲的生日 作为李红的好朋友请你给李红出个主意,给李红的母亲买什么礼 They came here in autumn(同义句)They___ ____here_____ _____ The Greens went to Sanya in February同义句 The Greens ____ _____ ______Sanya______ ________ 我的母亲600字作文网 花卉园买回月季和郁金香共1700盆 月季的3分之2和郁金香的75%相等 两种花各买了多少盆?各位路过的或没路过的 这道题怎么做 不要方程 they came here over ten years ago的同义句they came here ____ ____ten yeas ago 作文大全600字我的母亲 求英文邓亚萍传记一篇 四级答题卡漏涂?四级的答题卡,我中间的题漏涂了,空过去了,请问会不会影响到下面的题,是不是下面的题都提上去批?希望确定的帮忙回答一下, 我要进行细菌的形态鉴定,现在想购买倒式显微镜请问有没有买过的?细菌的形态鉴定对显微镜有没有什么要求?放大倍数要多少才够?哪家公司产品好?因为还要有其他用途,所以实验室要求要买 我叫时传振我的英文名叫 用什么办法控制菊花开花的时间? 用显微镜观察细菌形态时,盖玻片太厚有什么影响? i ___(记得)they once came here for dinner. 法语中5个特殊的形容词 beau ,nouveau,vieux,fou,mou 求解释啊 阳性单数形容词的解释! Many can remember when Chinese,Japanese and Filipino immigrants were the victims of social isolation.求翻译 为什么树叶再不同季节颜色会有变化 现代生物科技分类 另类成语如骑乐无穷 同志们快啊 把How long will they stay?(改成be going to句型) 这是什么植物?叶子生长中颜色逐渐变化!非常漂亮! 如果你是小柳树,你想对春天说什么? how long are you going to stay in Bangkok?答语A.for another three weeks B.for the last three weeks C.it tooks three weeks 求四个关于树木的成语 描写春天柳树的诗 It's too bad that they aren't going to stay in Beijing for long是宾语从句吗,主语是谁,意思是什么? 描写有花草树木的成语,说出四个 将the tie matches his shirt very well.改为同义句the tie [ ] [ ] [ ] his shirt. 外国的哪一个城市一年四季都像秋天一样 植物叶子颜色变浅以前叶子都是绿油油的,现在颜色越来越淡,尤其是滴水观音,茎还软软的,经常自己折断了.植物放在阳光充足的地方.温度也不低.是缺少什么东西吗?还是太阳晒过头或是其他
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘