webassembly[一] Memory 学习

Memory

Linear memory 是 WebAssembly 的另外一种构建块,通常用于表示编译的 C/C++ 应用程序的整个堆。从 JavaScript 的角度,linear memory(后面称作 memory)可以被认为是一个可以调整大小的 ArrayBuffer,它是通过尽心优化的,用于负载和存储的低开销沙箱。

Memories 可以被 JavaScript 创建,需要提供出初始大小和最大的大小这些选项。

var memory = new WebAssembly.Memory({initial:10, maximum:100});

更多

typescript【四】枚举的学习

进入正题前,大家有没有碰见过类似的情况

switch (type) {
    case 1:

     break;
    caes 2:
     ...

    case 5:

}

当你第一写的时候或许能清楚地记得,但是过一两天回来再看,或者有迭代的时候。
有人说了注释,确实注释是个好的做法, 注释好比是两个人的沟通,有时候注释很清楚地理解,有时候则可能理解不到位。

更多

typescript【三】元组的学习

元组的学习

数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象。

元组起源于函数编程语言(如 F#),这些语言中会频繁使用元组。

查看例子

定义一对值分别为 stringnumber 的元组:

let val: [string, number, boolean] = ['ibeeger', 1, true];

更多

typescript【一】interfaces学习

今天开始学习 typescript ,坚持每一天更新一篇。

什么是接口

在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。

TypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。

更多

AudioContext【二】滤波设置

上一篇介绍了无标签播放音频,本篇增加些音效效果,主要的api

  • audioContext.createBiquadFilter

主要设置 frequency, Q两个值 (频率,质量)

    const filter = audioContext.createBiquadFilter();
    filter.frequency.value = number; //取值范围 小于800
    filter.Q.value =  number; //小于1000

常用的类型主要有:

  • lowpass(低通滤波)
  • highpass(高通滤波)
  • bandpass(带通滤波)
filter.type = 'lowpass'

更多

AudioContext【一】无标签播放音频

html播放音频常用的都是用audio标签,如果不可见用样式隐藏然后用js去控制播放,根据audio提供的能力模拟播放进度等等。

这里介绍一种web Audio API 的方式播放, 代码很简单也很容易理解

 const audioContext = new AudioContext();
 async function play() {
    const  res = await fetch('http://localhost/file/audio.mp3');
    const arraybuffer = await res.arrayBuffer();
    const audioBuffer = await audioContext.decodeAudioData(arraybuffer);
    const source = audioContext.createBufferSource();
    source.connect(audioContext.destination); //连接上实例
    source.buffer = audioBuffer;
    source.start();
 }
 button.addEventListener('click', play, false);

成功播放。
体验地址

文章来源: AudioContext【一】无标签播放音频