AudioContext Analyser在firefox/chrome上工作,但在Safari上不工作
AudioContext Analyser working on firefox/chrome but not Safari
我正在为音频编写可视化工具,在macosx和ios上使用远程调试器调试safari时遇到问题。在更新AudioContext分析器的动画函数上,ByteFrequency数组中的值在safari上不更新。以下是代码示例:
var context;
if (typeof AudioContext !== "undefined") {
context = new AudioContext();
} else if (typeof webkitAudioContext !== "undefined") {
context = new webkitAudioContext();
}
var analyser = context.createAnalyser();
analyser.fftSize = 64;
frequencyData = new Uint8Array(analyser.frequencyBinCount);
// Get the frequency data and update the visualisation
function update() {
requestAnimationFrame(update);
analyser.getByteFrequencyData(frequencyData);
};
$(document).ready(function(){
$("#player").bind('canplay', function() {
var source = context.createMediaElementSource(this);
source.connect(analyser);
analyser.connect(context.destination);
});
};
这是工作示例的链接http://basketballjock.org/
在safari中,您需要在用户交互后创建音频上下文。例如,在按钮onclick回调中。
HTML:<button onclick="play">Play</button>
Javascript:
function play() {
var context;
if (typeof AudioContext !== "undefined") {
context = new AudioContext();
} else if (typeof webkitAudioContext !== "undefined") {
context = new webkitAudioContext();
}
var analyser = context.createAnalyser();
analyser.fftSize = 64;
frequencyData = new Uint8Array(analyser.frequencyBinCount);
// Get the frequency data and update the visualisation
function update() {
requestAnimationFrame(update);
analyser.getByteFrequencyData(frequencyData);
};
var source = context.createMediaElementSource(this);
source.connect(analyser);
analyser.connect(context.destination);
}
相关文章:
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- 异步加载的SVG过滤器feColorMatrix在Chrome中工作,而不是在Safari或Firefox中
- RGB 到 HEX JavaScript 函数在 Chrome 中工作,但不能在 Firefox 或 Safari 中工
- setInterval 或 window.location 在 Opera、IE 和 Safari 中无法正常工作
- window.onbeforeunload在IE8中不触发(在Firefox,Chrome和Safari中工作正常)
- toLocaleString()不会'无法在Safari浏览器中工作
- 动画HTML5横幅工作在除Safari以外的一切
- Date.prototype.get日期;不能在Safari中工作
- jQuery UI手风琴无法在本地目录的Safari中工作
- html+css+js组合在Google Chrome或Safari浏览器中无法正常工作
- window.open()没有'无法在添加到主屏幕的移动Safari web应用程序中工作
- webkitAudioContext在iOS Safari上创建MediaElementSource不工作
- JQuery图像大小计算没有'不能在Chrome/Safari中工作
- JavaScript倒计时;不能在Safari中工作
- style.display无法在Chrome、Safari-Firefox、IE11中正常工作
- 为什么这个html5音频不能在chrome上工作,但在safari上工作得很好
- 为什么这个代码不能在IE中工作?Safari
- Javascript未在Firefox上执行,在Chrome上工作;Safari