小编Dar*_*_we的帖子

如何不断地重新填充缓冲区/流并播放音频,而不会在缓冲区末尾出现令人讨厌的暂停和点击声?

尝试创建舒缓的氢声音发生器,但网络音频 api 太有限,或者我错过了一些东西。没有 onbufferend 或 onrequestmoredata 或类似的。唯一存在的东西是来自 AudioBufferSourceNode 的 onend。我想做的事情是不可能的吗?

stackoverflow 抱怨我应该添加更多详细信息,因为该帖子主要包含代码,但我没有更多详细信息要添加。

document.addEventListener("DOMContentLoaded", () => {
const button = document.querySelector('button');
const buttonStop = document.querySelector('#buttonStop');

let AudioContext = window.AudioContext || window.webkitAudioContext;
let audioCtx;

// Mono
const channels = 1;

function init() {
  audioCtx = new AudioContext();
}

buttonStop.onclick = function() {
  audioCtx.close();
  audioCtx = null;
}


const clamp = (num, min, max) => Math.min(Math.max(num, min), max);

const hz_REAL_TIME_FREQUENCY = 440;
let dk;
let dPos = 0.0;
let firsttime = true;
const …
Run Code Online (Sandbox Code Playgroud)

javascript web-audio-api

5
推荐指数
1
解决办法
1861
查看次数

撤消 split('').join(' '); 的优雅解决方案;

我想知道是否有一个优雅的解决方案来撤销这个字符串操作:

'hello world'.split('').join(' '); // result: 'h e l l o   w o r l d'
Run Code Online (Sandbox Code Playgroud)

在我看来,我当前的解决方案并不像插入空格的代码(上面的代码)那样优雅。它确实有效,但我可以做得更好吗?

let spaces = 'h e l l o   w o r l d'.split('  ');
let r = '';
for (let i = 0, len = spaces.length; i < len; ++i) {
    r += spaces[i].split(' ').join('');
    if (i != len - 1) {
        r += ' ';
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript string split

3
推荐指数
1
解决办法
47
查看次数

标签 统计

javascript ×2

split ×1

string ×1

web-audio-api ×1