完整问题:为什么使用MediaElementAudioSourceNode
而不是AudioBuffer
来获得更长的声音更合适?
这些类型的对象旨在保存小型音频片段,通常小于45秒。对于较长的声音,实现MediaElementAudioSourceNode的对象更合适。
此接口表示存储器驻留音频资产(用于一次性声音和其他短音频剪辑)。其格式为非交错32位线性浮点PCM值,正常范围为[-1,1] [ - 1,1],但值不限于此范围。它可以包含一个或多个通道。通常,预计PCM数据的长度将相当短(通常略小于一分钟)。对于较长的声音,例如音乐配乐,流媒体应与音频元素和MediaElementAudioSourceNode一起使用。
MediaElementAudioSourceNode
对AudioBuffer
?MediaElementAudioSourceNode
短片时是否有任何缺点?答案 0 :(得分:3)
MediaElementSourceNode具有潜在的流式传输功能 - 当然也可以在整个声音文件下载和解码之前开始播放。它还能够在不将声音文件转换(可能扩展!)到32位线性PCM(CD质量音频仅为每通道16位)并转码为输出设备采样率的情况下执行此操作。例如,以16位,16kHz录制的1分钟播客本身大小不到2兆字节;如果你正在48kHz设备上播放(并非罕见),转码为32位48kHz意味着你将使用近12兆字节作为AudioBuffer。
MediaElementSourceNode不会为您提供精确的播放时间,也无法管理/播放大量同步声音。对于您的用例,精度可能是合理的,但它不会像AudioBuffer那样具有样本精确的时序。