egret.Sound
包 egret
类 public class Sound
继承 egret.Sound → egret.EventDispatcher → egret.HashObject
Sound 允许您在应用程序中使用声音。使用 Sound 类可以创建 Sound 对象、将外部音频文件加载到该对象并播放该文件。可通过 SoundChannel 对声音执行更精细的控制,如控制音量和监控播放进度。
公共属性
属性 |
---|
EFFECT : string [静态]音效 |
MUSIC : string [静态]背景音乐 |
length : number 当前声音的长度(以秒为单位) |
type : string 类型,默认为 egret.Sound.EFFECT |
公共方法
方法 |
---|
Sound() 创建 Sound 对象、将外部音频文件加载到该对象并播放该文件 |
close():void 关闭该流,从而停止所有数据的下载 |
load(url:string):void 启动从指定 URL 加载外部音频文件的过程 |
play(startTime:number,loops:number):egret.SoundChannel 生成一个新的 SoundChannel 对象来播放该声音 |
事件
Events |
---|
egret.Event.COMPLETE 音频加载完成时抛出 |
egret.IOErrorEvent.IO_ERROR 音频加载失败时抛出 |
属性详细信息
EFFECT
EFFECT : string = "effect"
- 支持版本:Egret 2.4
- 运行平台:Web,Native
音效
MUSIC
MUSIC : string = "music"
- 支持版本:Egret 2.4
- 运行平台:Web,Native
背景音乐
length
length : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
当前声音的长度(以秒为单位)。
type
type : string
- 支持版本:Egret 2.4
- 运行平台:Web,Native
类型,默认为 egret.Sound.EFFECT。在 native 和 runtime 环境下,背景音乐同时只能播放一个,音效长度尽量不要太长。
方法详细信息
Sound()
public Sound()
创建 Sound 对象、将外部音频文件加载到该对象并播放该文件
- 支持版本:Egret 2.4
- 运行平台:Web,Native
close()
public close():void
关闭该流,从而停止所有数据的下载。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
load()
启动从指定 URL 加载外部音频文件的过程。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- url:string - 需要加载的音频文件URL
play()
public play(startTime:number,loops:number):egret.SoundChannel
生成一个新的 SoundChannel 对象来播放该声音。此方法返回 SoundChannel 对象,访问该对象可停止声音调整音量。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
示例
/*
* 以下示例加载一个 MP3 文件,进行播放,并输出播放该 MP3 文件时所发生的声音事件的相关信息。
*/
class SoundExample extends egret.DisplayObjectContainer {
public constructor() {
super();
this.startLoad();
}
private startLoad(): void {
//创建 Sound 对象
const sound = new egret.Sound();
const url: string = "resource/assets/sound.mp3";
//添加加载完成侦听
sound.addEventListener(egret.Event.COMPLETE, this.onLoadComplete, this);
//开始加载
sound.load(url);
}
private onLoadComplete(event: egret.Event): void {
//获取加载到的 Sound 对象
const sound: egret.Sound = <egret.Sound>event.target;
//播放音乐
const channel: egret.SoundChannel = sound.play(0, 1);
channel.addEventListener(egret.Event.SOUND_COMPLETE, this.onSoundComplete, this);
}
private onSoundComplete(event: egret.Event): void {
egret.log("onSoundComplete");
}
}