我正在为音频编写一个可视化工具,我在mac os x上遇到safari问题,并且在使用远程调试器进行ios调试时遇到问题。在用于更新AudioContext分析器的动画功能上,ByteFrequency数组中的值不会在safari上更新。以下是代码示例:
#start with variables data.shape=(N,M), vol.shape=(M,), jstarts and jends .shape=(4,)
N=3
#N=1 #uncomment to test
M=20
jstarts = np.array([0,5,12,15])
jends = np.array([3,10,14,18])
data = np.arange(0,N,M).reshape(N,M)
data_new = np.empty((N,M))
for i in range(0,N):
for j in range(0,jstarts.size):
jstart = jstarts[j]
jend = jends[j]
tmp = np.sum(data[i,jstart:jend]*vol[jstart:jend])/np.sum(vol[jstart:jend])
data_new[i,jstart:jend] = tmp
这是指向工作示例http://basketballjock.org/
的链接答案 0 :(得分:0)
在野生动物园中,您需要在用户交互后创建音频上下文。例如,在按钮上的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);
}