43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
|
|
|||
|
Channel3d 类控制应用程序中 在三维空间中播放的声音。每个声音均分配给一个声道,而且应用程序可以具有混合在一起的多个声道。
|
|||
|
|
|||
|
> 注:因为channel3d继承自channel,所以channel3d也包含channel的属性方法。
|
|||
|
|
|||
|
## 1、Channel3D属性
|
|||
|
|
|||
|
* `listener : egret3d.Vector3D` 返回监听者位置
|
|||
|
* `maxDistance` 最大距离
|
|||
|
* `minDistance` 最小距离
|
|||
|
* `position` 三维空间中的位置
|
|||
|
* `rollOffFactor rollOff` 系数
|
|||
|
* `velocity` 传播方向
|
|||
|
|
|||
|
注意以上是Channel的属性,可以直接设置如下:
|
|||
|
> `channel3d.maxDistance = 10;`
|
|||
|
|
|||
|
但是必须在初始化的时候设置,或者在play之前设置。通过对这些属性的设置,能够产生具有空间属性的声音效果。
|
|||
|
|
|||
|
## 2、Channel3D方法
|
|||
|
|
|||
|
* `Channel3d ( sound :egret3d.Sound, options :any )` 创建一个新的 Channel3d 对象,和channel构造方法一样
|
|||
|
* `getDuration ( ):number` 音频持续时间
|
|||
|
* `isPlaying ( ):boolean` 是否正在播放
|
|||
|
|
|||
|
## 3、代码示例
|
|||
|
我们对channel的示例稍作修改
|
|||
|
```
|
|||
|
private _sound:egret3d.Sound;
|
|||
|
// 加载声音文件成功
|
|||
|
private loadSoundSuccess(e): void {
|
|||
|
var channel3d:egret3d.Channel3d = new egret3d.Channel3d(e,{"volume":1,"loop":true});
|
|||
|
|
|||
|
channel3d.volume = 1;
|
|||
|
channel3d.position = new egret3d.Vector3D(0,0,0);
|
|||
|
channel3d.velocity = new egret3d.Vector3D(0,0,0);
|
|||
|
channel3d.play();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
```
|
|||
|
使用`F5`调试即可播放。
|