Google Chrome[mobile]中的JavaScript音频API错误

Google Chrome[mobile]中的JavaScript音频API错误,javascript,api,html5-audio,Javascript,Api,Html5 Audio,我创建了一个脚本,在浏览器中播放音频文件并分析频率。使用此频率数据,它将根据数据创建图形。它在Google Chrome[桌面]中工作正常,但在Android上的Google Chrome中,analyzer.getByteFrequencyData()函数返回Uint8Array,但所有数据都设置为0。我不明白为什么,因为它在同一个浏览器中是相同的代码。如果我试图用chrome usb调试这个网站,控制台会显示没有错误,并且analyzer obj存在 这是我的密码: var player =

我创建了一个脚本,在浏览器中播放音频文件并分析频率。使用此频率数据,它将根据数据创建图形。它在Google Chrome[桌面]中工作正常,但在Android上的Google Chrome中,analyzer.getByteFrequencyData()函数返回Uint8Array,但所有数据都设置为0。我不明白为什么,因为它在同一个浏览器中是相同的代码。如果我试图用chrome usb调试这个网站,控制台会显示没有错误,并且analyzer obj存在

这是我的密码:

var player = null;
window.onload = function(){
    player = document.getElementById("audio");
    player.volume = 0.2;
    player.children[0].src = "music.mp3";
    player.load();
    player.addEventListener("canplay", function(){player.play();});

    context = new AudioContext();
    analyser = context.createAnalyser();
    canvas = document.getElementById('analyser_render');
    ctx = canvas.getContext('2d');
    ctx.canvas.width = window.innerWidth;
    ctx.canvas.height = window.innerHeight;
    source = context.createMediaElementSource(player); 
    source.connect(analyser);
    analyser.connect(context.destination);
    frameLooper();
}
function frameLooper(){
    fbc_array = new Uint8Array(analyser.frequencyBinCount);
    analyser.getByteFrequencyData(fbc_array);
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    for (var i = 0; i < window.innerWidth/3; i++) {
        var grd = ctx.createLinearGradient(i*3,0,i*3,window.innerHeight+100);
        grd.addColorStop(0,"#00f");
        grd.addColorStop(1,"#f00");
        ctx.fillStyle = grd;
        ctx.fillRect(i * 3, canvas.height, 2, fbc_array[i] *-2);
    }
    window.requestAnimationFrame(frameLooper);
}
var-player=null;
window.onload=函数(){
player=document.getElementById(“音频”);
player.volume=0.2;
player.children[0].src=“music.mp3”;
player.load();
player.addEventListener(“canplay”,function(){player.play();});
上下文=新的AudioContext();
Analyzer=context.createAnalyzer();
canvas=document.getElementById('analyzer_render');
ctx=canvas.getContext('2d');
ctx.canvas.width=window.innerWidth;
ctx.canvas.height=window.innerHeight;
source=context.createMediaElementSource(播放器);
源。连接(分析仪);
分析器.连接(上下文.目的地);
frameLooper();
}
函数frameLooper(){
fbc_阵列=新UINT8阵列(分析仪频率b计数);
分析仪。GetByTefFrequencyData(fbc_阵列);
clearRect(0,0,canvas.width,canvas.height);
对于(变量i=0;i
(本例中还增加了一个文件选择器)


是否有人遇到同样的问题,或者我的代码中是否有错误?

我可以确认最新的Chrome mobile中仍然存在此问题。