首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >充满零的HTML5音频接收阵列

充满零的HTML5音频接收阵列
EN

Stack Overflow用户
提问于 2018-04-29 19:18:45
回答 1查看 1.7K关注 0票数 4

我在建立音频可视化系统上遇到了一些麻烦。我正在使用HTML5音频标签:

代码语言:javascript
复制
<audio id="music" src="https://cdn.glitch.com/02dcea11-9bd2-4462-ac38-eeb6a5ad9530%2F331_full_beautiful-minds_0171_preview.mp3?1522829295082" crossorigin="use-URL-credentials" controls="true"></audio>

(歌曲来自www.premiumbeat.com)

与AudioContext和Analyser一起使用,如下所示:

代码语言:javascript
复制
const audio = document.getElementById('music');
audio.load();
audio.play();

const ctx = new AudioContext();
const audioSrc = ctx.createMediaElementSource(audio);
const analyser = ctx.createAnalyser();
audioSrc.connect(analyser);
analyser.connect(ctx.destination);

analyser.fftSize = 256;
const bufferLength = analyser.frequencyBinCount;
const frequencyData = new Uint8Array(bufferLength);
analyser.getByteFrequencyData(frequencyData);

setTimeout(() => {
   analyser.getByteFrequencyData(frequencyData);
   console.log(frequencyData);
}, 5000);

output :尽管当我调用getByteFrequencyData()时歌曲正在播放,但是输出是128个条目长的零数组。

预期行为:在5秒后,控制台应该输出128个条目,当前频率数据的长数组。(我这样做是因为requestAnimationFrame会延迟窗口,但是我尝试过了,结果是一样的)。

知道我做错了什么吗?(我使用火狐量子59.0.2。)

在这里试试:JSFiddle实例

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-29 19:35:57

在我的网络音频api实验之后,我修改了您的脚本,使其使用getByteTimeDomainData而不是getByteFrequencyData

https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteTimeDomainData

在演示中使用间隔而不是超时。

代码语言:javascript
复制
const audio = document.getElementById('music');
audio.load();
audio.play();

const ctx = new AudioContext();
const audioSrc = ctx.createMediaElementSource(audio);
const analyser = ctx.createAnalyser();

audioSrc.connect(analyser);
analyser.connect(ctx.destination);

analyser.fftSize = 256;
const bufferLength = analyser.frequencyBinCount;
const frequencyData = new Uint8Array(bufferLength);

setInterval(() => {
   analyser.getByteFrequencyData(frequencyData);
   console.log(frequencyData);
}, 1000);
代码语言:javascript
复制
<audio id="music" src="https://cdn.glitch.com/02dcea11-9bd2-4462-ac38-eeb6a5ad9530%2F331_full_beautiful-minds_0171_preview.mp3?1522829295082" crossorigin="use-URL-credentials" controls="true"></audio>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50090397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档