AudioNode

AudioNode是音频图的节点,实现有:
1.<audio>video元素;OscillatorNode
2.audio destination
3.中间处理模块(intermediate processing module)BiquadFilterNodeConvolverNode
4.音量控制,GainNode

在这里插入图片描述

每一个AudioNode都有输入和输出,多个AudioNode连接成一个图(graph).这个图保存在AudioContext中,且每一个AudioNode只能属于一个AudioContext

source node没有输入,但有多个输出,可以用来生成声音.
destination node没有输出,它所有的输入都直接播放.
processing node既有输入又有输出,一个节点读取它的输入,做一些音频的处理,生成新的值输出或者只是让音频直接通过,比如AnalyserNode

graph中有多的node会造成高延迟,所以应该将graph做小,而且将用户控制的node放在图的末尾,比如GainNode,这样用户会立刻得到音量的变化的反馈.

构造

1.通过构造器创建

const analyserNode = new AnalyserNode(audioCtx, {
  fftSize: 2048,
  maxDecibels: -25,
  minDecibels: -60,
  smoothingTimeConstant: 0.5,
});

2.通过工厂方法创建

// factory method
const analyserNode = audioCtx.createAnalyser();
analyserNode.fftSize = 2048;
analyserNode.maxDecibels = -25;
analyserNode.minDecibels = -60;
analyserNode.smoothingTimeConstant = 0.5;

属性

属性描述
AudioNode.context返回BaseAudioContext
AudioNode.numberOfInputs返回输入的个数
AudioNode.numberOfOutputs返回输出的个数
AudioNode.channelCount通道的个数
AudioNode.channelCountMode
AudioNode.channelInterpretation

方法

方法描述
AudioNode.connect()将这个node的输出作为另一个node的输入
AudioNode.disconnect()断开链接
const audioCtx = new AudioContext();

const oscillator = new OscillatorNode(audioCtx);
const gainNode = new GainNode(audioCtx);

oscillator.connect(gainNode).connect(audioCtx.destination);

oscillator.context;
oscillator.numberOfInputs;
oscillator.numberOfOutputs;
oscillator.channelCount;

参考:
https://developer.mozilla.org/en-US/docs/Web/API/AudioNode

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Cocos Creator 中,你可以通过设置一个常驻节点来实现音乐播放器,并在切换场景后保持音乐的播放。以下是具体的步骤: 1. 首先,在场景中创建一个空节点,作为音乐播放器的父节点。你可以将其命名为 "MusicManager" 或其他合适的名称。 2. 将音乐文件添加到项目资源中。你可以将音乐文件拖放到资源管理器中,或者通过代码动态加载。 3. 创建一个脚本组件,用于管理音乐播放。你可以将其附加到 "MusicManager" 节点上。 4. 在脚本组件中,使用 cc.AudioSource 组件来控制音乐的播放。你可以通过以下代码示例来实现: ```javascript cc.Class({ extends: cc.Component, properties: { musicClip: { default: null, type: cc.AudioClip } }, onLoad () { cc.game.addPersistRootNode(this.node); // 将节点设置为常驻节点 // 创建一个新的子节点,用于存放 cc.AudioSource 组件 const audioNode = new cc.Node('Music'); const audioSource = audioNode.addComponent(cc.AudioSource); audioSource.clip = this.musicClip; audioSource.loop = true; audioSource.play(); audioNode.parent = this.node; }, }); ``` 5. 确保在每个场景切换之前,你需要在新场景加载完成之前将 "MusicManager" 节点设置为不被销毁。你可以在场景切换脚本或场景管理器中实现这一点。 以上就是在 Cocos Creator 中设置常驻节点音乐播放器并在切换场景后保持音乐播放的方法。希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值