【问题标题】:Some tracks not being seekable when using HTML5 Audio controlled with JavaScript使用由 JavaScript 控制的 HTML5 音频时,某些曲目不可搜索
【发布时间】:2015-11-10 03:25:31
【问题描述】:

我正在编写一个应用程序,它将歌曲加载到 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);
}  

【问题讨论】:

  • 你能在 chrome 中播放文件吗?
  • @Kaiido 是的,我可以。其他所有功能都在正常工作。
  • 它有一个持续时间设置?您可以将其发布到某个地方(保管箱或其他)以便直接尝试使用您的文件吗?

标签: javascript html html5-audio


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-07
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多