【问题标题】:What's causing this slow/delayed audio playback in Safari?是什么导致 Safari 中这种缓慢/延迟的音频播放?
【发布时间】:2014-03-06 06:37:24
【问题描述】:
var audio = new Audio('data:audio/wav;base64,UklGRoABAABXQVZFZm10IBAAAAABAAEAiBUAAIgVAAABAAgAZGF0YVwBAACHlqa1xNLg7vv/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Tk1LSklHRkVEQ0JBQD8+Pj08PDs6Ojk5OTg4ODg3Nzc3Nzc3Nzc3Nzc3Nzg4ODg5OTk6Ojs7Ozw8PT4+P0BAQUJCQ0RFRUZHSElJSktMTU5OT1BRUlNUVVVWV1hZWltcXV1eX2BhYmNkZGVmZ2hpaWprbG1ubm9wcXFyc3R0dXZ3d3h5eXp6e3x8fX1+f3+AgIGBgoKCg4OEhISFhYWGhoaHh4eHh4iIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHhoaGhYWFhISEg4OCgoGBgIA=');

setInterval(function() {
    audio.play();
}, 50);

此代码在 Chrome 和 Firefox 中正常运行,但在 Safari 中,每个声音之间存在超过一秒的延迟。我不知道为什么会这样,据我所知没有兼容性问题。我想在我正在制作的游戏中以准确的时间和相当快的延迟播放声音,我怎样才能让它工作?

【问题讨论】:

标签: javascript audio browser safari


【解决方案1】:

我不知道为什么,但是添加 AudioContext 可以消除延迟。

const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioCtx = new AudioContext();

偶然发现,对我有用。去图吧。

Safari 版本 12.0 (14606.1.36.1.9)。

【讨论】:

  • 这也修复了我在设置 audio.currentTime 时在 Safari 上遇到的奇怪延迟。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 2020-04-15
  • 2020-10-03
  • 1970-01-01
相关资源
最近更新 更多