Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止chrome/FF下AudioContext.decodeAudioData的差异_Javascript_Google Chrome_Firefox_Audio - Fatal编程技术网

Javascript 如何防止chrome/FF下AudioContext.decodeAudioData的差异

Javascript 如何防止chrome/FF下AudioContext.decodeAudioData的差异,javascript,google-chrome,firefox,audio,Javascript,Google Chrome,Firefox,Audio,我正在使用wavesurfer.js作为我编写的工具。我用它来显示某个mp3文件。我遇到的问题是,如果我在两个浏览器中都加载mp3文件,chrome浏览器中的一个文件一开始就会被切断。我开始调试这个问题,似乎从AudioAPI调用audioContext.decodeAudioData会导致mp3在chrome中被截断,两种情况下的输入都是一致的(一个2781 bytearray进入) 从firefox我得到121248个样本,布局看起来不错,从chrome我得到114330个样本,一开始就被砍

我正在使用wavesurfer.js作为我编写的工具。我用它来显示某个mp3文件。我遇到的问题是,如果我在两个浏览器中都加载mp3文件,chrome浏览器中的一个文件一开始就会被切断。我开始调试这个问题,似乎从AudioAPI调用audioContext.decodeAudioData会导致mp3在chrome中被截断,两种情况下的输入都是一致的(一个2781 bytearray进入)

从firefox我得到121248个样本,布局看起来不错,从chrome我得到114330个样本,一开始就被砍掉了

我测试了另一个更长的文件,它也给了我6918个样本缺失的差异

同样的问题也发生在使用FF的linux下,其中返回的样本是124416。(gstreamer插件)

(顺便说一句,这些都是可比的,因为系统都使用48kHz输出)

在windows for firefox下解码mp3的插件是vlc插件,因为ff本身由于许可问题无法解码mp3

文件编码为: ID3版本为2.4.0的音频文件,包含:MPEG ADT,第三层,v2.5,24 kbps,8 kHz,单声道

最初它是一个PCM 32kHz单声道文件

我可以想象,由于解码器的不同实现,mp3的样本不一致。(这里回答了我自己的问题)

多个浏览器上的一致性编解码器会产生什么样的一致性?我知道Wav应该会产生类似的结果,对吗? ogg怎么样?我可以假设样本量的一致性,因为代码库应该是相同的,还是样本中的这些差异源于audioAPI在不同浏览器中构建的方式不同(我会说这与API有点反直觉)