HTML5 网络音频 seeTo 用于缓冲源

标签 html audio web-audio-api

我有一个网络应用程序(类似于卡拉 OK),用户可以在其中通过乐器录制他的声音。 录音后用户回放录音。我在这里演奏<audio>使用网络音频 API 进行标签和语音。为了在播放/暂停时同步两个音频,我这样计算时间

pausedAt = Date.now() - startedAt;
startedAt = Date.now() - pausedAt;

这很好用。问题是当用户使用音频标签上的 slider 向前/向后移动时。我正在考虑这样的解决方案

  • 使用ontimeupdate事件,停止语音,然后使用 startAt(currentTime)其中 currentTime 是音频标签中乐器演奏的时间。

由于api中没有seekTo函数,我必须停止然后再启动音频。有没有更好的解决方案?

我面临的第二个问题是在音频标签上寻找不顺畅。如果我任意点击进度条,有时它不起作用。当我在开发人员工具窗口中看到网络选项卡时,我看到了如图所示的内容。它发出约 600 个请求并下载约 86 MB 数据,而文件大小小于 10 MB。 enter image description here

最佳答案

您确实应该使用 Web Audio API 来执行此操作。永远不会为您提供精确的同步,并且它将依赖于流式传输来寻找 - 正如您所看到的,这将导致额外的下载。只需通过XHR 和decodeAudioData 加载歌曲,并提供您自己的播放控件即可。

关于HTML5 网络音频 seeTo 用于缓冲源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22555973/

相关文章:

android - MediaRecorder.AudioSource.DEFAULT 阻止通话中的音频

javascript - 获取 AudioTrack 的音频 channel 数

php - 如何使用数据库 laravel 背包中的数据更改标题

html - 列与相同的 CSS 不一致

javascript - 更改 html5 视频的特定视频时间码的 html 内容

javascript - VueJs 数据不会显示

java - 录音时检测静音

android - 您如何在后台通过iPhone应用程序流音频/将其杀死到网络上?

javascript - 如何将 Web Audio API 连接到 Tone.js?

javascript - Web音频增益节点未完全静音