StereoPannerNode - 表示一个简单的立体声声相器节点

StereoPannerNodeWeb Audio API 的接口,表示一个简单的立体声声相器节点,该节点可用于向左或向右声相音频流。它是一个 AudioNode 音频处理模块,它使用低成本的等功率平移算法在立体声图像中定位输入的音频流。

pan属性的取值介于 -1(全左平移)和 1(全右平移)之间。与必须使用完整的 PannerNode 相比,引入此接口是一种更简单的方法来应用简单的平移效果。

输入数量 1
输出数量 1
通道计数模式 "clamped-max"
通道数 2
通道解释 "speakers"

构造函数

StereoPannerNode()

创建一个新的 StereoPannerNode 对象实例。

属性

从其父节点 AudioNode 继承了属性。

StereoPannerNode.pan 只读

一个 a-rate AudioParam,表示要应用的平移量。

方法

没有特有的方法;从其父接口 AudioNode 继承了方法。

实例

在我们的 StereoPannerNode 实例请参阅源代码)HTML 中,我们有一个简单的 <audio> 元素以及一个滑块 <input>,用于增加和减少平移值。在 JavaScript 中,我们创建了 MediaElementAudioSourceNodeStereoPannerNode,然后使用 connect() 方法将两者连接在一起。然后,我们使用一个 oninput 事件处理程序来更改 StereoPannerNode.pan 参数的值,并在移动滑块时更新平移值显示。

在播放音乐时左右移动滑块,将音乐分别平移到输出的左右扬声器。

var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var myAudio = document.querySelector('audio');

var panControl = document.querySelector('.panning-control');
var panValue = document.querySelector('.panning-value');

pre.innerHTML = myScript.innerHTML;

// 创建一个 MediaElementAudioSourceNode
// 将 HTMLMediaElement 传入其中
var source = audioCtx.createMediaElementSource(myAudio);

// 创建一个立体声声像器
var panNode = audioCtx.createStereoPanner();

// 事件处理程序功能可在移动滑块时增加向左右平移
panControl.oninput = function() {
  panNode.pan.setValueAtTime(panControl.value, audioCtx.currentTime);
  panValue.innerHTML = panControl.value;
}

// 将 MediaElementAudioSourceNode 连接到 panNode,将 panNode 连接到目标,因此我们可以播放音乐并使用控件调整平移
source.connect(panNode);
panNode.connect(audioCtx.destination);

规范

规范 状态 备注
Web Audio API
StereoPannerNode 的定义
工作草案 初始定义

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持41≤1837 不支持28 不支持
StereoPannerNode() 构造函数551≤7953 不支持42 不支持
pan411237 不支持28 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持4141 未知37 未知28 不支持
StereoPannerNode() 构造函数551551 未知53 未知42 不支持
pan4141 未知37 未知28 不支持

1. 在 Chrome 59 之前,不支持默认值。

2. 在 Samsung Internet 7.0 之前,不支持默认值。

相关链接