我正在尝试使用Audio Web API可视化音频,它可以在Chrome和Firefox中使用,但不能在Safari(台式机Mac)中使用。
这是一个在Chrome中记录frequencyData的最小示例,但是在Safari中,即使在播放音乐时,它也总是由128个值组成的数组。
<html>
<head>
</head>
<body>
<audio id="audio" crossOrigin="anonymous" src="https://...." controls />
<script>
const element = document.getElementById('audio');
const context = new (window.AudioContext || window.webkitAudioContext)();
const analyser = context.createAnalyser();
const source = context.createMediaElementSource(element);
source.connect(analyser);
analyser.connect(context.destination);
analyser.fftSize = 2048;
const frequencyData = new Uint8Array(analyser.frequencyBinCount);
setInterval(() => {
analyser.getByteTimeDomainData(frequencyData);
console.log(frequencyData);
}, 1000);
</script>
</body>
</html>
源是来自Icecast2服务器的mp3流。我没有找到有关Safari特定问题的任何信息... Safari是否不支持某些特定问题?