问题标签 [audiobuffer]
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.
ios - AudioUnit inputCallback 与 AudioUnitRender -> audioBufferList.mBuffers[0].mDataByteSize 之间不匹配!= inNumberFrames
我们正在使用 AudioUnits 输入回调来处理传入的缓冲区。音频单元设置主要取自
https://github.com/robovm/apple-ios-samples/blob/master/aurioTouch/Classes/AudioController.mm
我在音频回调中添加了一些健全性检查。看起来像这样
现在有时语句会assert(callbackData.audioBufferList.mBuffers[0].mDataByteSize == inNumberFrames * sizeof(float));
失败,因为缓冲区不同。
有人对这种现象有解释吗?
javascript - 是否可以使用 javascript 将频率赫兹数组转换为音频缓冲区?
数组第一列是频率,第二列是播放时间。
我可以按顺序使用音频上下文播放频率代码,但我需要一种方法将这种方式转换为音频文件或 AudioBuffer。我想设计一个具有这些频率的频谱图。
web-audio-api - 如何在使用网络音频 API 播放曲目时提前 n 秒?
使用 Web Audio API,我正在尝试构建一个具有“向前跳过 15 秒”功能的 mp3 播放器。
我可以使用源缓冲区加载 mp3,并且可以开始播放。我想做这样的事情,虽然我知道 currentTime 不是可设置的属性:
一旦歌曲已经播放,你如何向前跳过 n 秒?
javascript - 在 JavaScript/Html5 中流式传输和播放通过 TCP 数据包接收的音频
我有某些TCP
包含音频数据的数据包。
我是 Js 和 html5 的新手。
我写过这样的东西,它会发出嗡嗡声。TCP
我想知道音频样本在数据包中的样子。
我使用wire-shark捕获了TCP
数据包,数据段显示了一些字符及其ASCII值。
我相信这些字符是音频数据。假设是这样,我怎样才能将这些传递给myArrayBuffer
下面的喜欢?
javascript - 将音频缓冲区放入可由音频元素播放的 blob 的最佳方法是什么?
我有一个存储为变量的 AudioBuffer,我想让它由一个音频元素播放。这是我当前无法运行的代码:
当我尝试播放 audioElement 时,出现以下错误:
Uncaught (in promise) DOMException: 该元素没有支持的来源。
有没有人对如何解决这个问题有任何想法?提前致谢!
javascript - AudioBufferSourceNode.start() 不起作用,或者至少激活但不产生任何声音,我做错了什么吗?
我的目标是在按下特定键时播放声音(我说按下键上的字母),但没有 html 音频标签,带有来自 web-Audio API 的 audioBuffers。
此处执行,作为arraySources的一项创建的audioBufferSourceNode在使用.start()函数时不显示任何声音。不知道为什么更新:已解决 arraySources[count].connect(AudCtx.destination) 丢失..!
swift - 如何在 Swift 中从内存中播放 [Int16] 音频样本数组
尝试使用GME库为 Mac 构建游戏音乐播放器(NSF、SPC 等)。
我花了好几个小时在 SO 上测试这么多的解决方案和技巧,但似乎没有一个解决方案能很好地工作。我尝试了该AVAudioEngine/AVAudioPlayerNode/scheduleBuffer
路线的许多变体,但由于它们都不起作用,我只是切换到将样本转换为 Wav 数据并从内存中播放。但是,这确实有效,从[Int16]
to转换[UInt8]
(为了为波阵列创建数据)非常慢。至少对于更高的采样率和超过几秒钟的歌曲。下面的“清洁”代码示例。非常欢迎反馈和建议。
测试:
- AVAudioPlayerNode 示例(无法开始工作,例如,找不到输入设备、没有声音等)
- 缓冲区到 wav 数据示例(有效,但 sloooow)
swift - SDL 音频回调的 Swift 实现中的噪声和失真
我目前正在为 Mac OS 构建一个游戏音乐播放器,使用GME生成声音缓冲区和SDL用于音频播放。我以前(并且成功地)使用SDL_QueueAudio进行播放,但我需要对缓冲区处理进行更精细的控制,以确定歌曲进度、歌曲结束等。所以,这让我在SDL_AudioSpec API 中使用了 SDL_AudioCallback。
我可以听到歌曲播放,但伴随着噪音和失真(有时会根据我的尝试而回声)。
设置
打回来
javascript - JavaScript 将音频字节数组转换为 wav 文件或有效的 AudioBuffer
我可以从 URL 访问字节数组文件(float32,big endian),我正在尝试将其转换为 WaveSurfer 可处理的东西,这需要有效的 ArrayBuffer、AudioBuffer 或 wav 文件的 URL。
我得到的最接近的方法是使用 fetch 来获取文件,并尝试将其转换为 ArrayBuffer,但是 WaveSurfer 无法识别,这表示它无法解码数据。
这是我的 JavaScript 代码:
我知道我要解码的文件是有效的音频文件,因为我可以使用以下 python 脚本将其转换为 wav 文件:
关于我能做什么的任何建议?
javascript - AudioBuffer.getChannelData 在 Safari 中输出一半麦克风的音量
我在这里设计了一个简单的体积单位仪表:https ://codesandbox.io/embed/cocky-torvalds-60k4n (这是对此的最小改编:https ://github.com/cwilso/volume-meter/ )
它在浏览器中运行良好,但由于某种原因,输入信号在 Safari 上似乎下降了一半:当我在麦克风音量最大的情况下尝试脚本时,它通常在 Chrome/Firefox 上输出 0.3-0.5 之间的最大值/Edge,在 Safari 13 上介于 0.1-0.3 之间。它似乎与我的配置无关,因为我让另一个人在他们的机器上重现了相同的行为。
据我所知,差异来自getChannelData
,而 Safari 产生的值较低。
有人熟悉这个吗?它是否应该被视为一个错误,您是否知道任何解决方法来协调跨浏览器的输出?
最终我的目标是在麦克风音量太低时提供反馈,但只要getChannelData
' 的输出在浏览器之间不一致,或者没有原则性的方法来重新校准 Safari 的数字,它就会不可靠