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

42 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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`调试即可播放。