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

如何从浏览器捕获音频?

  •  0
  • Crashalot  · 技术社区  · 15 年前

    我的客户机需要让用户记录来自浏览器的消息,然后将消息导出为音频文件(如wav)。

    这是如何做到最好的?Flash,Java,HTML5?最好的说法是,我指的是一些易于实现并且得到广泛支持的东西。

    人们使用HTML5的经验是什么?

    谢谢!

    3 回复  |  直到 13 年前
        1
  •  4
  •   Peter Knego    13 年前

    闪存是一个选项,但您需要一个媒体流服务器(AdobeMediaServer、Wowza、Red5)。无法在本地将Flash上的音频捕获和存储到文件中。

    如果您愿意使用Java applet,则有多种解决方案。它们都需要访问本地文件系统,并要求用户提供额外的权限。例如,尝试 http://www.javasonics.com/ 或者谷歌 applet record audio “。

    更新: 由于Flash 10.0,可以选择使用带有sampleDataEvent.sample_数据的麦克风。这样就可以从麦克风访问原始音频数据。见本项目实施: http://code.google.com/p/micrecorder/

        2
  •  1
  •   vstoyanov    15 年前

    嗯,我怀疑HTML5的这种功能是非常不标准的,浏览器支持也会有很大的不同(许多浏览器不包括任何浏览器)。

    Java不像Flash那么流行,有很多人根本没有JRE。

    总之,在这种情况下,我会选择flash解决方案。也许在某些有限的情况下,HTML5会退步,资源是否允许。

        3
  •  0
  •   Ian McGraw    13 年前

    假设您的意思是“导出”到服务器,这里有一个不需要闪存媒体服务器的开源闪存解决方案:

    https://code.google.com/p/wami-recorder/

    录制通过HTTP Post传输到您选择的服务器端技术。在最简单的情况下,您可以用4行PHP代码捕获和保存音频:

    <? 
    $content = file_get_contents('php://input');
    $fh = fopen('output.wav', 'w') or die("can't open file");
    fwrite($fh, $content);
    fclose($fh);
    ?>
    

    关于HTML5支持,请注意 getUserMedia()