问题标签 [audiocontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2219 浏览

javascript - Chrome 移动设备中使用 getByteFrequencyData 的更高频率

我正在尝试使用 JavaScript 显示麦克风的声谱。下面的代码适用于我的笔记本(Firefox 和 Chrome 浏览器)。在我的手机(Chrome 浏览器)上,它也可以工作,但最多只能达到大约。5kHz。缺少更高的频率。我的手机能够录制更高的频率。我使用几个应用程序进行了检查。对于我想做的事情,我真的也需要更高的频率。现在的问题是:这是 Chrome 移动端的限制吗?我怎样才能克服这个限制?还是我错过了什么并且错误在我的代码中?

0 投票
2 回答
817 浏览

audio-recording - AudioBuffer 的“getChannelData()”等效于 MediaStream(或 MediaStreamAudioSourceNode)?

我在 mp3 文件上使用AudioContext's decodeAudioData,这给了我一个AudioBuffer. 有了这个音频缓冲区,我继续使用getChannelData().

现在我想使用相同的代码来绘制 a 的音频数据的波形MediaStream,这意味着我需要相同类型的输入/数据。我知道 aMediaStream包含实时信息,但必须有一种方法可以从MediaStreamas访问每个新数据

包含 PCM 数据的 Float32Array

这就是AudioBuffer' 的getChannelData回报。

我试图MediaStream用 a包装MediaStreamAudioSourceNode并将其输入 aAnalyserNode以使用getFloatFrequencyData()(返回 a Float32Array),但我可以看出数据与我从中获得的数据不同getChannelData()。也许它不是“PCM”数据?如何获取“PCM”数据?

希望这很清楚。谢谢您的帮助!

0 投票
0 回答
1752 浏览

javascript - AudioContext 未在 Internet Explorer 中加载

我正在使用一个使用AudioContext来获取频率数据的可视化器。它在 Internet Explorer 中不起作用。

之前的 Stack Overflow 问题有点相关:

HTML5 如何为 javascript 游戏替换 Internet Explorer 的 WebAudio API?

所以,我使用下面的代码来获取 AudioContext

控制台返回'NONE OF THEM',这意味着 Internet Explorer(版本 11)无法加载任何音频内容。

微软自己的文档是指AudioContext(): https ://msdn.microsoft.com/en-us/library/dn954795(v=vs.85).aspx

我很困惑,我错过了什么吗?

0 投票
0 回答
166 浏览

javascript - 如何将声音输入从 HTML 发送到服务器

我需要将声音输入发送到服务器。我可以将它作为变量发送吗?我应该在函数start_microphone()中做什么,我应该使用什么方法AudioContext()

0 投票
0 回答
38 浏览

android - 英特尔 XDK + Cordova。您是否需要授权才能访问设备麦克风?

我是移动应用程序开发的新手。我使用audioContext制作了一个网络调谐器来获取用户音调。它工作得很好。我想把它翻译成android / ios。我正在使用我相信可以导入 Cordova 插件的 intelXDK。我可以在两个模拟器(ios 和 android)上运行应用程序就好了。我可以检测到假装的音频。当我通过将应用程序推送到服务器并从我的 android 设备运行它来测试应用程序时,我也可以让它工作(屏幕分辨率有一些问题)。在那里,我还可以接收用户声音输入。但是,当我在手机上调试应用程序时,我无法输入用户音频……我是否需要以某种方式获得用户授权才能使用他的麦克风?

0 投票
0 回答
606 浏览

javascript - AudioContext / MediaRecorder 在移动浏览器上工作,但不在科尔多瓦

我正在开发一个“启动板”类型的应用程序。我的应用程序可以在桌面和移动浏览器上运行,但由于某种原因,我无法让它在科尔多瓦运行。

我在下面的代码中将应用程序简化为最简单的形式。您还可以在此处找到工作版本,并在此处找到演示 cordova 项目

更多细节:

  • 没有错误被抛出
  • 我只在安卓上测试过
  • 我也试过人行横道
  • 您可以看到它生成的 base64 编码音频在 cordova 中只是空白,但在其他情况下是一个很大的长字符串。

我完全被难住了,越来越沮丧。谢谢你的帮助!

0 投票
2 回答
1708 浏览

javascript - 如何将音频文件加载到 AudioContext 之类的流中?

例如,我想将 100MB 的 mp3 文件加载到 AudioContext 中,我可以使用 XMLHttpRequest 来做到这一点。

但是使用这个解决方案我需要加载所有文件,然后我才能播放它,因为onprogress方法不返回数据。

我也尝试用fetch方法做到这一点,但这种方式有同样的问题。

有什么方法可以在客户端 JavaScript 中加载像流这样的音频文件?

0 投票
1 回答
861 浏览

javascript - 如何使 AudioContext() 和 RequestAnimationFrame() 在当前浏览器中运行

我正在尝试使用基于画布的 HTML5 音频和频率创建可视化器。它在 chrome 和 safari 上运行良好。但我也想让它在 IE 和 Firefox 上运行。

请注意,它不会显示堆栈溢出的可视化,但它可以在本地主机上工作。基本上它在 IE 和 Moz 上没有显示的问题是webkitAudioContext(), 和webkitRequestAnimationFrame(). 从第一个中删除 webkit 使其可以在 chrome 和 IE 上运行,但停止在 Safari 上运行。

有没有办法让它在 Chrome、Safari、Firefox 和 IE 等当前浏览器中运行。

0 投票
0 回答
683 浏览

javascript - Web Audio 播放 PCM 流的断断续续的声音

我遇到了使用 Web Audio API 播放原始 PCM 数据的问题。我通过 Web 套接字接收原始 PCM 数据并创建缓冲区并使用 AudioContext.createBufferSource 将它们排队。PCM 数据是正确的,但音频的计时已关闭。

在接收函数中,我缓冲直到我有大约 1 秒的音频,然后播放它。后续接收一旦进入就会排队。这确保音频块在播放器到达该时间之前排队。这是排队功能: http: //pastebin.com/KXn6kEYw

以下是显示音频块在前一个块完成播放之前处理的示例输出:

以下是断断续续的音频示例:http: //protological.com/plfiles/choppy.mp3

似乎所有音频数据都在播放,只是片段之间有间隙

有趣的一件事是音频中的间隙与音频块的时间长度大致相同。较小的片段具有较小的间隙,几乎就像音频播放持续时间的 2 倍一样。

0 投票
1 回答
891 浏览

web-audio-api - 如何以特定的位深度渲染?

如何OfflineAudioContext.startRendering()输出AudioBuffer包含我选择的位深度(16 位或 24 位)的?我知道我可以使用 轻松设置输出的采样率AudioContext.sampleRate,但是如何设置位深度?

我对音频处理的理解非常有限,所以可能没有我想的那么容易。

编辑#1:

实际上,AudioContext.sampleRate它是只读的,所以如果您知道如何设置输出的采样率,那也很棒。

编辑#2:

我猜采样率是在编码的 WAV 中的通道数之后插入的(在DataView