-1

我是一名 Javascript 程序员初学者。
我正在创建一个使用网络音频 API(音乐可视化器/示波器)的网络应用程序。

我的任务是:

  1. 如何将存储在 PC 上的离线本地音乐源链接到示波器 Web 音频 API。(我读了一些关于 OfflineAudioContext 我只是不知道如何应用它)
  2. 当我启动站点时,控制台给我一个错误:无法读取未定义的属性'createAnalyser'

    请帮助我在哪里出错。如果这是不可能的,请为此任务提供一些替代方案。感谢您的回答。

    我的代码:
    let audioContext,
    masterGain;
 
function audioSetup() {
    let source = 'intro.mp3';     // <<----------I put an offline resource here just it doesn't work for me
 
    audioContext = new (window.AudioContext || window.webkitAudioContext)();
    masterGain = audioContext.createGain();
    masterGain.connect(audioContext.destination);
 
    let song        = new Audio(source),
        songSource  = audioContext.createMediaElementSource(song);
 
    songSource.connect(masterGain);
    song.play();
}
 
const analyser = audioContext.createAnalyser();
masterGain.connect(analyser);
 
const waveform = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatTimeDomainData(waveform);
 
function updateWaveform() {
  requestAnimationFrame(updateWaveform);
  analyser.getFloatTimeDomainData(waveform);
}
4

1 回答 1

0

该错误可能是因为您audioContext.createAnalyser()在运行之前调用audioSetup所以audioContextundefined.

也不清楚您所说的“离线”是什么意思。如果它是某处的文件,请使用文件 URL。

于 2020-12-01T15:49:32.950 回答