Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取字节频率数据以在iOS上工作_Javascript_Ios_Audio_Mobile - Fatal编程技术网

Javascript 如何获取字节频率数据以在iOS上工作

Javascript 如何获取字节频率数据以在iOS上工作,javascript,ios,audio,mobile,Javascript,Ios,Audio,Mobile,我有一个非常讨厌的iOS错误(并不奇怪)。我正在尝试制作一个非常基本的音频分析器脚本,以便在播放时拾取音频的频率/级别 它可以在桌面、chrome、safari上使用。在移动iOS上,音频工作,但频率数据返回0 代码笔: 函数playAudio(){ console.log('播放音频') 音频=document.getElementById(“audioPiece”); context=newaudiocontext() Analyzer=context.createAnalyzer(); s

我有一个非常讨厌的iOS错误(并不奇怪)。我正在尝试制作一个非常基本的音频分析器脚本,以便在播放时拾取音频的频率/级别

它可以在桌面、chrome、safari上使用。在移动iOS上,音频工作,但频率数据返回0

代码笔:

函数playAudio(){
console.log('播放音频')
音频=document.getElementById(“audioPiece”);
context=newaudiocontext()
Analyzer=context.createAnalyzer();
source=context.createMediaElementSource(音频);
源。连接(分析仪);
source.connect(context.destination);
分析器.连接(上下文.目的地);
音频播放();
var frequencyData=新的UINT8阵列(分析仪频率B计数);
函数绘图(){
if(context.currentTime
}

我无法让音频在codepen上跨原点工作,所以直接链接

有没有解决这个问题的办法/方法,使它可以在平板电脑/iphone上运行?非常感谢

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();