egret-docs-master/Engine3D/sound/channel/README.md

42 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2024-06-19 13:32:32 +08:00
Channel 类控制应用程序中的声音,对声音执行更精细的控制。每个声音均分配给一个声道,而且应用程序可以具有混合在一起的多个声道。
## 1、Channel属性
* `loop : boolean` 是否循环播放 使声音播放结束时重新开始播放
* `pitch : number` 当前播放速度,当前播放速度。1.0 正常速度。0.5 半速更慢。2.0 倍速(更快)。-1.0 向后。正常速度。-0.5 向后,半速。
* `volume : number` 音量,范围从 0静音至 1最大幅度
注意以上是Channel的属性可以直接设置如下
> `channel.volume = 1;`
但是必须在初始化的时候设置或者在play之前设置。
## 2、Channel方法
* `Channel ( sound :egret3d.Sound, options :any )` 创建一个新的 Channel 对象
* `getDuration ( ):number` 音频持续时间
* `isPlaying ( ):boolean` 是否正在播放
* `pause ( )` 暂时停止在该声道中播放声音
* `play ( )` 开始在该声道中播放声音
* `stop ( )` 停止在该声道中播放声音
* `unpause ( )` 从暂停的位置继续在该声道中播放声音
## 3、代码示例
接下来我们修改`Hello Sound`代码
在onLoad最后新增这句代码
> `this._sound = new egret3d.Sound("resource/ccnn.mp3",this.loadSoundSuccess);`
并新建方法`loadSoundSuccess`
```
private _sound:egret3d.Sound;
// 加载声音文件成功
private loadSoundSuccess(e): void {
var channel:egret3d.Channel = new egret3d.Channel(e,{"volume":1,"loop":true});
channel.play();
}
```
使用`F5`调试即可播放。