问题标签 [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.
javascript - Chrome 移动设备中使用 getByteFrequencyData 的更高频率
我正在尝试使用 JavaScript 显示麦克风的声谱。下面的代码适用于我的笔记本(Firefox 和 Chrome 浏览器)。在我的手机(Chrome 浏览器)上,它也可以工作,但最多只能达到大约。5kHz。缺少更高的频率。我的手机能够录制更高的频率。我使用几个应用程序进行了检查。对于我想做的事情,我真的也需要更高的频率。现在的问题是:这是 Chrome 移动端的限制吗?我怎样才能克服这个限制?还是我错过了什么并且错误在我的代码中?
audio-recording - AudioBuffer 的“getChannelData()”等效于 MediaStream(或 MediaStreamAudioSourceNode)?
我在 mp3 文件上使用AudioContext
's decodeAudioData
,这给了我一个AudioBuffer
. 有了这个音频缓冲区,我继续使用getChannelData()
.
现在我想使用相同的代码来绘制 a 的音频数据的波形MediaStream
,这意味着我需要相同类型的输入/数据。我知道 aMediaStream
包含实时信息,但必须有一种方法可以从MediaStream
as访问每个新数据
包含 PCM 数据的 Float32Array
这就是AudioBuffer
' 的getChannelData
回报。
我试图MediaStream
用 a包装MediaStreamAudioSourceNode
并将其输入 aAnalyserNode
以使用getFloatFrequencyData()
(返回 a Float32Array
),但我可以看出数据与我从中获得的数据不同getChannelData()
。也许它不是“PCM”数据?如何获取“PCM”数据?
希望这很清楚。谢谢您的帮助!
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
我很困惑,我错过了什么吗?
javascript - 如何将声音输入从 HTML 发送到服务器
我需要将声音输入发送到服务器。我可以将它作为变量发送吗?我应该在函数start_microphone()
中做什么,我应该使用什么方法AudioContext()
?
android - 英特尔 XDK + Cordova。您是否需要授权才能访问设备麦克风?
我是移动应用程序开发的新手。我使用audioContext制作了一个网络调谐器来获取用户音调。它工作得很好。我想把它翻译成android / ios。我正在使用我相信可以导入 Cordova 插件的 intelXDK。我可以在两个模拟器(ios 和 android)上运行应用程序就好了。我可以检测到假装的音频。当我通过将应用程序推送到服务器并从我的 android 设备运行它来测试应用程序时,我也可以让它工作(屏幕分辨率有一些问题)。在那里,我还可以接收用户声音输入。但是,当我在手机上调试应用程序时,我无法输入用户音频……我是否需要以某种方式获得用户授权才能使用他的麦克风?
javascript - AudioContext / MediaRecorder 在移动浏览器上工作,但不在科尔多瓦
我正在开发一个“启动板”类型的应用程序。我的应用程序可以在桌面和移动浏览器上运行,但由于某种原因,我无法让它在科尔多瓦运行。
我在下面的代码中将应用程序简化为最简单的形式。您还可以在此处找到工作版本,并在此处找到演示 cordova 项目。
更多细节:
- 没有错误被抛出
- 我只在安卓上测试过
- 我也试过人行横道
- 您可以看到它生成的 base64 编码音频在 cordova 中只是空白,但在其他情况下是一个很大的长字符串。
我完全被难住了,越来越沮丧。谢谢你的帮助!
javascript - 如何将音频文件加载到 AudioContext 之类的流中?
例如,我想将 100MB 的 mp3 文件加载到 AudioContext 中,我可以使用 XMLHttpRequest 来做到这一点。
但是使用这个解决方案我需要加载所有文件,然后我才能播放它,因为onprogress
方法不返回数据。
我也尝试用fetch
方法做到这一点,但这种方式有同样的问题。
有什么方法可以在客户端 JavaScript 中加载像流这样的音频文件?
javascript - 如何使 AudioContext() 和 RequestAnimationFrame() 在当前浏览器中运行
我正在尝试使用基于画布的 HTML5 音频和频率创建可视化器。它在 chrome 和 safari 上运行良好。但我也想让它在 IE 和 Firefox 上运行。
请注意,它不会显示堆栈溢出的可视化,但它可以在本地主机上工作。基本上它在 IE 和 Moz 上没有显示的问题是webkitAudioContext()
, 和webkitRequestAnimationFrame()
. 从第一个中删除 webkit 使其可以在 chrome 和 IE 上运行,但停止在 Safari 上运行。
有没有办法让它在 Chrome、Safari、Firefox 和 IE 等当前浏览器中运行。
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 倍一样。
web-audio-api - 如何以特定的位深度渲染?
如何OfflineAudioContext.startRendering()
输出AudioBuffer
包含我选择的位深度(16 位或 24 位)的?我知道我可以使用 轻松设置输出的采样率AudioContext.sampleRate
,但是如何设置位深度?
我对音频处理的理解非常有限,所以可能没有我想的那么容易。
编辑#1:
实际上,AudioContext.sampleRate
它是只读的,所以如果您知道如何设置输出的采样率,那也很棒。
编辑#2:
我猜采样率是在编码的 WAV 中的通道数之后插入的(在DataView
)