第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 JS 畫布中繪制正弦波沒有任何作用

在 JS 畫布中繪制正弦波沒有任何作用

牧羊人nacy 2022-07-01 16:49:50
我編寫了以下內(nèi)容以從 AudioBuffer 中繪制聲波,但我得到的是帶有水平直線的畫布:const { audioContext, analyser } = this.getAudioContext();const source = audioContext.createBufferSource();source.buffer = audioBuffer;source.connect(audioContext.destination);const canvas = document.getElementById('canvas');const canvasCtx = canvas.getContext("2d");let sinewaveDataArray = new Uint8Array(analyser.fftSize);const drawSinewave = function() {    analyser.getByteTimeDomainData(sinewaveDataArray);    requestAnimationFrame(drawSinewave);    canvasCtx.fillStyle = 'white';    canvasCtx.fillRect(0, 0, canvas.width, canvas.height);    canvasCtx.lineWidth = 2;    canvasCtx.strokeStyle = "black";    canvasCtx.beginPath();    const sliceWidth = canvas.width * 1.0 / analyser.fftSize;    let x = 0;    for(let i = 0; i < analyser.fftSize; i++) {        const v = sinewaveDataArray[i] / 128.0; // byte / 2 || 256 / 2        const y = v * canvas.height / 2;        if(i === 0) {            canvasCtx.moveTo(x, y);        } else {            canvasCtx.lineTo(x, y);        }        x += sliceWidth;    }    canvasCtx.lineTo(canvas.width, canvas.height / 2);    canvasCtx.stroke();};source.start();drawSinewave();getAudioContext =  () => {        AudioContext = window.AudioContext || window.webkitAudioContext;        const audioContext = new AudioContext();        const analyser = audioContext.createAnalyser();        return { audioContext, analyser };    };我正在尋找的最終結(jié)果類似于這里的第一個(gè)圖像剪輯:https ://meyda.js.org/知道我缺少什么嗎?
查看完整描述

1 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

我認(rèn)為需要進(jìn)行兩個(gè)小改動(dòng)才能使其正常工作。

source.start()需要響應(yīng)用戶事件來執(zhí)行。可以使用帶有單擊處理程序的簡(jiǎn)單按鈕來實(shí)現(xiàn)此目的。這是處理某些瀏覽器中存在的自動(dòng)播放策略所必需的。

aReferenceToAButton.addEventListener('click', async () => {
    await audioContext.resume();
    source.start();});

最后但同樣重要的是,您需要通過AnalyserNode.

source
    .connect(analyser)
    .connect(audioContext.destination);

我希望這有幫助。


查看完整回答
反對(duì) 回復(fù) 2022-07-01
  • 1 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)