我有一个非常烦人的iOS错误(并不令人惊讶)。我尝试制作一个非常基本的音频分析器脚本,以便在播放时获取音频的频率/级别。
适用于桌面,Chrome,Safari。在移动iOS上,音频有效,但频率数据返回0 ...
Codepen:http://codepen.io/LuckyDe/pen/kXZqNm?editors=1011
function playAudio() {
console.log('play audio')
audio = document.getElementById("audioPiece");
context = new AudioContext()
analyser = context.createAnalyser();
source = context.createMediaElementSource(audio);
source.connect(analyser);
source.connect(context.destination);
analyser.connect(context.destination);
audio.play();
var frequencyData = new Uint8Array(analyser.frequencyBinCount);
function draw() {
if (context.currentTime < audio.duration) {
drawVisual = requestAnimationFrame(draw);
}
analyser.getByteFrequencyData(frequencyData);
var getData = (frequencyData[8] * 100) / 256 - 30;
console.log(frequencyData[8]);
playButton.innerHTML = "draw" + getData;
}
draw();
}
我无法让音频在codepen上跨越原点工作,因此直接链接http://www.luckyde.com/js/AudioFrequency/test1/index.html
是否有任何解决方法/方法可以解决这个问题,以便它可以在平板电脑/ iPhone上运行?非常感谢