首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以使用Javascript或其他web语言来捕获浏览器的音频?

有没有一种方法可以使用Javascript或其他web语言来捕获浏览器的音频?
EN

Stack Overflow用户
提问于 2015-11-11 03:22:13
回答 2查看 2.4K关注 0票数 4

我想做一个简单的网站,显示互动的视觉效果,我希望他们中的一些是音频驱动的。我希望游客能够用他们自己选择的音乐来驱动视觉效果。除了从麦克风获取音频输入之外,我很难找到许多关于其他方面的文档。

例如,我的网页(在选项卡1中)正在运行javascript代码X,它允许我处理在web浏览器的另一个选项卡中播放的音频流。这个是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2015-11-11 04:24:07

如果我正确理解您的问题,您希望从当前选项卡之外的来源捕获音频。

没有这样的api作为W3C the spec的一部分,可能是因为如果有用户完整性问题就会出现。由于浏览器本质上是执行外来代码,因此浏览器往往是严格sandboxed的,并且需要获得同意才能防止任何侵犯用户隐私的行为。

如果您或用户有权访问媒体,请尝试使用AudioFile API。如果这样做和使用您提到的输入音频捕获API都不够,那么您将不得不转向创建浏览器扩展或完全转向另一个平台。

票数 2
EN

Stack Overflow用户

发布于 2015-11-11 03:42:52

您可以通过WebRtc接口获取麦克风流

代码语言:javascript
复制
if (!navigator.getUserMedia)
  navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
  navigator.mozGetUserMedia || navigator.msGetUserMedia;

if (navigator.getUserMedia) {
    navigator.getUserMedia({audio:true}, success, function(e) {
    });
}  

.

代码语言:javascript
复制
 function success(e) {
      audioContext = window.AudioContext || window.webkitAudioContext;
      context = new audioContext();

      // the sample rate is in context.sampleRate
      audioInput = context.createMediaStreamSource(e);

      var bufferSize = 2048;
      recorder = context.createScriptProcessor(bufferSize, 1, 1);
      recorder.onaudioprocess = function(e){

        console.log ('recording');
        var left = e.inputBuffer.getChannelData(0);
    // stream
        window.Stream.write(convertoFloat32ToInt16(left));
  }
  audioInput.connect(recorder)
  recorder.connect(context.destination); 


function convertoFloat32ToInt16(buffer) {
  var l = buffer.length;
  var buf = new Int16Array(l)
  while (l--) {
    buf[l] = buffer[l]*0xFFFF;    //convert to 16 bit
  }
  return buf.buffer
} 

如果你只喜欢音频流的可视化,你可以使用像enter link description here这样的javascript插件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33637901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档