gpt4 book ai didi

javascript - Howler + ctx 分析器问题

转载 作者:行者123 更新时间:2023-11-30 15:14:52 27 4
gpt4 key购买 nike

我正在尝试将音频分析器节点连接到我的啸叫器设置。

问题是我得到一个由“128”填充的数组,这意味着没有声音,但声音正在播放。

这是我的代码:

  var Sound = new Howl({
src: 'https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3',
html5: true,
format: ['mp3']
});

Sound.play();

// Create analyzer
var analyser = Howler.ctx.createAnalyser();

// Connect master gain to analyzer
Howler.masterGain.connect(analyser);

// Connect analyzer to destination
analyser.connect(Howler.ctx.destination);

// Creating output array (according to documentation https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API)
analyser.fftSize = 2048;
var bufferLength = analyser.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);

// Get the Data array
analyser.getByteTimeDomainData(dataArray);

// Display array on time each 3 sec (just to debug)
setInterval(function(){
analyser.getByteTimeDomainData(dataArray);
console.dir(dataArray);
}, 3000);

这是我的项目的一个缩减到最小的 plunker:

Plunker

我的实现基于这些来源:

avanwink answer在这个帖子上

The documentation of sound visualization

最佳答案

已修复!

因为之前使用 radio 流来测试我的播放器,所以我在 Howl 对象中将 html5 选项设置为 true。

删除此选项,允许 howler 使用网络音频 API,从而解决了我的问题:

工作版本:

var Sound = new Howl({
src: 'https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3',
format: ['mp3']
});

Sound.play();

// Create analyzer
var analyser = Howler.ctx.createAnalyser();

// Connect master gain to analyzer
Howler.masterGain.connect(analyser);

// Connect analyzer to destination
analyser.connect(Howler.ctx.destination);

// Creating output array (according to documentation https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API)
analyser.fftSize = 2048;
var bufferLength = analyser.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);

// Get the Data array
analyser.getByteTimeDomainData(dataArray);

// Display array on time each 3 sec (just to debug)
setInterval(function(){
analyser.getByteTimeDomainData(dataArray);
console.dir(dataArray);
}, 3000);

关于javascript - Howler + ctx 分析器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44630923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com