在实施过程中,在实施过程中,“公共/JavaScripts/index.js”中的Canvas Draws,“ public/javaScripts/index.js”中的AudioContext API应用程序代码重点关注与AudioContext相关的API。如果您对Web音频API感兴趣,请参见Web Audio API。
音频处理的环境和背景可以控制其包含的节点的创建,以及音频处理,音频解码操作,阅读播放状态等。在执行与音频相关的事物之前,请创建AudioContext对象,因为一切都发生在此环境中。
那么如何创建AudioContext的环境?
在这种环境中,有许多非常重要的方法和属性。选择一些来谈论:
AudioBufferSourCenode:代表一个音频源,该音频源可以安装在内存中写入的音频数据,没有输入,有输出方法,您可以使用start方法来调用,使用停止方法将其关闭
您需要在这里注意一件事:
增益表:表示可以控制输出音频体积的音量控制器,通常为0-1
AnalySernode:代表一个音频分析仪,该仪提供节点以提供可以提供真实时间频率时间 - 时域分析的信息
AudioDestinationNode:指示音频的最终输出地址 - 通常是扬声器
当前时间:当前音频环境播放时间
(关于当前时间,我的理解与翻译的API解释文档不同。)下图表示:
这张照片是原始的英文文字
英语的含义可能用于调节音频播放,可视化时间戳等。在播放开始之前,当AC.Currenttime始终为0时,以及当音频环境通过sissend()删除时,当前时间的值不再改变,也就是说,它是暂时暂停的。
解码器:这是一种通常用于异步解码音频文件的方法。解码文件是通过使用响应类型作为Araybuffer类型AJAX获得的
简历:重新启动悬架音频环境
暂停:设置音频内容的进度。在此过程中暂时停止音频硬件访问并减少CPU/电池的使用。
这里还有一个重要的步骤,即音频和音量控制器,音频分析仪和播放器相互关联,以便他们正常使用它
首先,我们得到AnalySernode.frequencyBincount可视化数据值,然后将其保存到Uint8array数组类型中,
之后,将当前的频率数据复制到getByteFrequencyData方法传输到它的UINT8Array。
获得的价值可能就是这样
这是我们可以可视化音频的数据。他是随着音频播放的不断变化的价值。最初的全部为0,然后穿过此数组。如果您查看图片,您将理解
实际上,每组家谱条是具有宽度背景的宽度的宽度。线的高度为arr [i]。该线均匀地分为n个小正方形,每个小正方形网格高度的每个小正方形高度。对于4,彼此之间的间隔为0.5,然后我们不断计算更新小块和小红色的位置块,通过requestAnimationFrame重新填充。
最后,代码地址附加到星星和发行。
作者:阳光同学
