使用由JavaScript控制的HTML5音频时,某些曲目无法搜索

时间:2015-08-17 13:09:22

标签: javascript html5 html5-audio

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

通过控制我的意思是当歌曲开始播放时,图形开始填充点,当歌曲暂停图表的人口暂停时。当我从音频标签中搜索歌曲时,添加点的位置也会发生变化。我正在使用HighCharts中的click事件将歌曲的当前时间设置为x轴的值,因为x轴表示以秒为单位的歌曲持续时间。请参阅下面的图片以获得澄清。

我的问题来自于一些歌曲可以搜索而其他歌曲不可寻找的事实。我在Chrome中运行该应用。当我在Firefox中运行它时,问题不存在。所有歌曲都可以搜索到。

我设法注意到的是

track.seekable.end(0)
如果出现问题,

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

在轨道中搜索我正在使用的图表

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

1 个答案:

答案 0 :(得分:1)

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

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

请记住,问题仅存在于开发人员而非生产环境中。