Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 使用Soundmanager 2计算mp4的加载百分比_Javascript_Html_Mp4_Soundmanager2 - Fatal编程技术网

Javascript 使用Soundmanager 2计算mp4的加载百分比

Javascript 使用Soundmanager 2计算mp4的加载百分比,javascript,html,mp4,soundmanager2,Javascript,Html,Mp4,Soundmanager2,我试图使用HTML5计算Soundmanager2加载mp4文件的百分比。在以下两个示例中,每次加载SMSound对象时,都会调用whileloading事件: 此示例导致percentageLoaded的值为0,因为ByTestTotal保持为1,bytesLoaded保持为0,直到音频完全加载。同样,标头中的内容范围值正确地报告了字节数,但Soundmanager2会忽略该值 是否有一种我还没有尝试过的方法可以正确报告百分比,或者有一个我忽略的因素会导致这个问题?这仅仅是加载MP4时Soun

我试图使用HTML5计算Soundmanager2加载mp4文件的百分比。在以下两个示例中,每次加载SMSound对象时,都会调用whileloading事件:

此示例导致percentageLoaded的值为0,因为ByTestTotal保持为1,bytesLoaded保持为0,直到音频完全加载。同样,标头中的内容范围值正确地报告了字节数,但Soundmanager2会忽略该值

是否有一种我还没有尝试过的方法可以正确报告百分比,或者有一个我忽略的因素会导致这个问题?这仅仅是加载MP4时Soundmanager2的一个限制吗

编辑1: 不过,在onload事件触发后,所有值都是正确的,并且声音播放没有问题

编辑2: 下面是CodePen上发生的一个示例:

看看Soundmanager文档中发布的关于缓冲的示例。这可能是一个更简单的解决方案,尝试计算加载的字节数这是我目前使用的方法,我有我在原始问题中描述的问题。bytesLoaded/ByTestTotal示例是我尝试过的另一种方法。您可以将代码发布到JSFIDLE或Codepen中,以便我们可以实时查看它吗?我在问题的末尾添加了一个Codepen示例。
// This is the method suggested in the Soundmanager2 documentation
// http://www.schillmania.com/projects/soundmanager2/doc/#smsound-buffered

var percentageLoaded, i, durationLoaded = 0;
for (i = 0; i < this.buffered.length; i++) {
  durationLoaded += (this.buffered[i].end - this.buffered[i].start);
}
percentageLoaded = durationLoaded / this.duration * 100;
var percentageLoaded = audio.bytesLoaded / audio.bytesTotal * 100;