代码之家  ›  专栏  ›  技术社区  ›  PeterAllenWebb

是否可以使用javascript在浏览器中播放合成声音?

  •  4
  • PeterAllenWebb  · 技术社区  · 15 年前

    我刚遇到一个 Nintendo emulator written entirely in JavaScript 在互联网上,但没有声音。这让我想到:有没有什么方法可以在浏览器中使用javascript合成声音,然后播放它?如果这在一般情况下是不可能的,那么有没有任何safari/opera/firefox/ie/etc.扩展可以让它成为可能?

    我不是在问合成声音的技术,而是通过在浏览器中运行的代码合成的声音播放技术。

    4 回复  |  直到 12 年前
        1
  •  3
  •   Jotham    15 年前

    我想你最好的选择是让javascript使用外部接口与flash对话。( http://www.adobe.com/devnet/flash/articles/external_interface.html )flash现在有了一种在声音缓冲区和earray类之间传输数据的方法。

    http://www.adobe.com/devnet/flash/articles/dynamic_sound_generation/

    您可以使用flex sdk免费开发flash http://www.adobe.com/products/flex/ .

        2
  •  2
  •   epascarello    15 年前

    大多数开发人员使用 SoundManager 2 当他们想用javascript为他们的应用程序添加声音时。它有钩子,所以JavaScript可以与Flash8和9功能交互。我不确定它是否暴露了处理字节数据的能力,我猜你在追求这些,我从来没有必要去处理。

        3
  •  2
  •   Phil    13 年前

    NES Emulator的作者发现了一个动态音频库:

    https://github.com/bfirsh/dynamicaudio.js

    我没试过,但医生们看起来很有希望:

    var dynamicaudio=新dynamicaudio('swf': '/static/dynamicaudio.swf')

    write(samples);//在-1.0到 1。

        4
  •  1
  •   Samuel Edwin Ward    12 年前

    理论上,应该可以合成声音,然后让浏览器使用数据URL播放它们。

    实际上,Steven Wittens已经制作了 demo 这项技术。这个 encodeAudio8bit encodeAudio16bit 函数就是魔法发生的地方。