javascript - 使用由 JavaScript 控制的 HTML5 音频时,某些轨道不可搜索

标签 javascript html html5-audio

我正在编写一个将歌曲加载到 html 音频标签中并在顶部显示 HighCharts 图表的应用程序,用户可以操纵该图表以根据歌曲提供反馈。我从音频标签控制图表,反之亦然。

我所说的控制是指当歌曲开始播放时,图表开始填充点,当歌曲暂停时,图表的填充也会暂停。当我从音频标签中搜索歌曲时,添加点的位置也发生了变化。我正在使用 HighCharts 的点击事件将歌曲的当前时间设置为 x 轴的值,因为 x 轴代表歌曲的持续时间(以秒为单位)。请参阅下图进行说明。

我的问题是有些歌曲是可搜索的,而有些则不是。我在 Chrome 中运行该应用程序。当我在 Firefox 中运行它时,问题不存在。那么所有的歌曲都是可搜索的。

我设法注意到的是

track.seekable.end(0)

如果存在问题,则始终返回 0;如果问题不存在,则始终返回歌曲的长度。所有轨道不超过 4 分钟,不超过 6 兆字节。

在轨道中寻找我正在使用的图形

click: function(event) {
  track.currentTime = parseInt(event.xAxis[0].value/1000);
}  

最佳答案

我找到了答案。我在我的问题中忘记提及的后端使用 django。问题来自 django 服务器的开发版本。 django.views.static.serve 中不支持字节范围请求。

这可以通过使用 here 中的代码来解决。或者通过代理服务器运行您的应用程序。第一个修复不是那么可取,因为这会更改核心 django 文件,并且如果其他开发人员没有相同的代码,则不会为在同一应用程序上工作的其他开发人员解决问题,因此第二个修复是首选。

请记住,该问题仅存在于开发中,而不存在于生产中。

关于javascript - 使用由 JavaScript 控制的 HTML5 音频时,某些轨道不可搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051279/

相关文章:

java - 如何使用 Java 中的正则表达式删除 HTML 输出文件中的空行

javascript <音频> : cant update currentTime

javascript - 无法使用 jQuery 在 Chrome 中访问动态创建的音频元素 onClick

javascript - 从本地存储中删除整个阵列

javascript - 是否可以直接在 Svelte 中渲染 SVG 元素?

javascript - ng-switch 不自动更新

javascript - inputVal 上的 Math.pow()

html - 如何使用 Bootstrap 自定义响应式搜索栏

javascript - 使用 jquery 专注于 bootstrap textarea

javascript - 创建无缝音频循环 - Web