HTML5音频-currentTime属性不正确?

洛伊洛

我在玩HTML5<audio>标签,发现与该currentTime属性有关的某些奇怪行为

我想播放本地音频文件timeupdate,并通过将currentTime属性与duration属性进行比较事件检测其结束时间

如果我让歌曲从头到尾播放,这实际上可以正常工作-正确确定了歌曲的结尾。

但是,currentTime手动更改(直接通过JavaScript或使用基于浏览器的音频控件)会导致API不再提供正确的值,currentTime而是将其设置为比实际播放位置早几秒钟。

(前面的“几秒钟”是基于Chrome的,Firefox似乎完全疯了,这导致差异越来越大。)

有关此问题的jsFiddle例子:http : //jsfiddle.net/yp3o8cyw/2/

谁能告诉我为什么会这样-还是我只是不正确API应该做什么?

PS:我只是注意到这实际上仅发生在MP3编码的文件中,OGG文件完全正常。

布拉德

首先,我实际上无法在计算机上重现您的问题,但是目前我手头上只有一个简短的MP3文件,因此可能是问题所在。无论如何,我想我可以解释发生了什么。

MP3文件(MPEG)是非常简单的流,并且其中没有绝对位置数据。从读取文件的第一部分不可能知道任意帧从什么字节偏移开始。媒体播放器通过落针查找文件。也就是说,它知道整个轨道的大小以及时间偏移量大致在轨道中的距离。它猜测并开始解码,并在与下一个帧头同步后立即开始接收。这是一个不精确的过程。

Ogg是一个更强大的容器,并且在其帧头中内置了时间偏移。查找Ogg文件要简单得多。

另一个问题是大多数支持MP3的浏览器都这样做是因为编解码器已经在您的系统上可用。播放Ogg Vorbis和MP3通常是具有不同API的完全不同的库。尽管Web标准在提供通用抽象方面做了很多工作,但是次要的实现细节却引起您所看到的怪癖。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTML5 video.currentTime设置不正确

来自分类Dev

将HTML5音频“ currentTime”和“ duration”导入Python

来自分类Dev

切换HTML5音频的“静音”属性

来自分类Dev

HTML5:如何获取currentTime和音频标签的持续时间(以毫秒为单位)

来自分类Dev

HTML5:如何获取currentTime和音频标签的持续时间(以毫秒为单位)

来自分类Dev

html5音频:更改currentTime会触发多个canplay事件

来自分类Dev

如何使用JavaScript正确创建HTML5音频和视频

来自分类Dev

HTML5音频的playingRate属性不适用于移动浏览器?

来自分类Dev

Rpres HTML5演示文稿“另存为PDF”(Google Chrome)显示不正确

来自分类Dev

HTML5地理位置不正确

来自分类Dev

HTML5 canvas drawImage图片大小不正确

来自分类Dev

html5视频后备/备用图片位置不正确...?

来自分类Dev

HTML5地理位置不正确

来自分类Dev

HTML5 画布 drawImage 剪辑大小不正确的图像

来自分类Dev

如何包装HTML5视频元素的currentTime属性?

来自分类常见问题

具有捕获和接受属性的HTML文件输入控件工作不正确?

来自分类Dev

Rails 5:Bootstrap 样式不正确

来自分类Dev

选择不正确的值HTML <选择>

来自分类Dev

HTML实体显示不正确

来自分类Dev

树枝不正确被截断的html

来自分类Dev

Laravel HTML Facade输出不正确

来自分类Dev

嵌套的 HTML 表格显示不正确

来自分类Dev

形状(三角形)绘制不正确-HTML5 Canvas / JavaScript问题

来自分类Dev

ASP.NET MVC 5 Html.HiddenFor呈现不正确的属性值,但Model.Property呈现正确的值

来自分类Dev

HTML5音频库

来自分类Dev

音频标签HTML5

来自分类Dev

禁用HTML5音频

来自分类Dev

音频标签HTML5

来自分类Dev

音频问题html5

Related 相关文章

热门标签

归档