问题描述
我按照教程使用麦克风中的音频设置了可视化工具。我想让它改为您可以使用音频文件中的音频。我已经尝试了几种方法,但都失败了。我不确定为什么它不起作用。
HTML 文件
<canvas id="visualizer"></canvas>
<script src="practice.js"></script>
JS文件
const visualizer = document.getElementById('visualizer')
const context = new AudioContext()
const analyserNode = new AnalyserNode(context,{ fftSize: 256 })
setupContext()
drawVisualizer()
async function setupContext() {
const audio = await getAudio()
if (context.state === 'suspended') {
await context.resume()
}
const source = context.createmediastreamsource(audio)
source
.connect(analyserNode)
.connect(context.destination)
}
function getAudio() {
// this my way
const audio = new Audio("funky.mp3")
return audio
// this the original
// return navigator.mediaDevices.getUserMedia({
// audio: true
// })
}
function drawVisualizer() {
requestAnimationFrame(drawVisualizer)
const bufferLength = analyserNode.frequencyBinCount
const dataArray = new Uint8Array(bufferLength)
analyserNode.getByteFrequencyData(dataArray)
const width = visualizer.width
const height = visualizer.height
const barWidth = width / bufferLength
const canvasContext = visualizer.getContext('2d')
canvasContext.clearRect(0,width,height)
dataArray.forEach((item,index) => {
const y = item / 255 * height / 2
const x = barWidth * index
canvasContext.fillStyle = `hsl(${y / height * 400},100%,50%)`
canvasContext.fillRect(x,height - y,barWidth,y)
})
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)