我正在尝试构建基于Web Audio API的声音播放器。我有一个Safari问题,对我来说看起来像一个严重的Safari bug,所以我不知道是否可以做任何事情。
基本上我需要将mp3文件流式传输到Web Audio API图表中。这是通过$("svg").one("click", function() {
if (this.id != 'main_svg') {
a1 = this.id;
console.log($("#" + a1).attr("width"));
$('svg').unbind('click');
console.log(a1);
}
});
进行的。 Safari(9.1.1)中的问题是,每次在底层createMediaElementSource
元素上调用play()
时,初始音频缓冲区都会被破坏,从而导致短暂的打嗝"。根据实际Web Audio图形的复杂程度,这些丢失可能持续数百毫秒。 Firefox和Chrome没有这个问题。
以下说明了问题。点击"加载"设置音频元素audio
。等待。然后重复src
,Play
,Stop
(归零) - 您应该听到无失真的正弦音,但实际上您听说播放时的初始缓冲区已损坏。< / p>
JSFiddle:http://jsfiddle.net/4zgf33os/6/
HTML:
RTZ
CSS:
<div id="load" class="button">Load</div>
<div id="play" class="button">Play</div>
<div id="stop" class="button">Stop</div>
<div id="rtz" class="button">RTZ</div>
JavaScript的:
div.button {
position: relative;
display: inline;
width: 100px;
height: 24px;
margin: 4px;
padding: 4px;
background: black;
color: white;
cursor: pointer;
}