//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using GameFramework.Resource; using System; using System.Collections.Generic; namespace GameFramework.Sound { /// /// 声音管理器接口。 /// public interface ISoundManager { /// /// 获取声音组数量。 /// int SoundGroupCount { get; } /// /// 播放声音成功事件。 /// event EventHandler PlaySoundSuccess; /// /// 播放声音失败事件。 /// event EventHandler PlaySoundFailure; /// /// 播放声音更新事件。 /// event EventHandler PlaySoundUpdate; /// /// 播放声音时加载依赖资源事件。 /// event EventHandler PlaySoundDependencyAsset; /// /// 设置资源管理器。 /// /// 资源管理器。 void SetResourceManager(IResourceManager resourceManager); /// /// 设置声音辅助器。 /// /// 声音辅助器。 void SetSoundHelper(ISoundHelper soundHelper); /// /// 是否存在指定声音组。 /// /// 声音组名称。 /// 指定声音组是否存在。 bool HasSoundGroup(string soundGroupName); /// /// 获取指定声音组。 /// /// 声音组名称。 /// 要获取的声音组。 ISoundGroup GetSoundGroup(string soundGroupName); /// /// 获取所有声音组。 /// /// 所有声音组。 ISoundGroup[] GetAllSoundGroups(); /// /// 获取所有声音组。 /// /// 所有声音组。 void GetAllSoundGroups(List results); /// /// 增加声音组。 /// /// 声音组名称。 /// 声音组辅助器。 /// 是否增加声音组成功。 bool AddSoundGroup(string soundGroupName, ISoundGroupHelper soundGroupHelper); /// /// 增加声音组。 /// /// 声音组名称。 /// 声音组中的声音是否避免被同优先级声音替换。 /// 声音组是否静音。 /// 声音组音量。 /// 声音组辅助器。 /// 是否增加声音组成功。 bool AddSoundGroup(string soundGroupName, bool soundGroupAvoidBeingReplacedBySamePriority, bool soundGroupMute, float soundGroupVolume, ISoundGroupHelper soundGroupHelper); /// /// 增加声音代理辅助器。 /// /// 声音组名称。 /// 要增加的声音代理辅助器。 void AddSoundAgentHelper(string soundGroupName, ISoundAgentHelper soundAgentHelper); /// /// 获取所有正在加载声音的序列编号。 /// /// 所有正在加载声音的序列编号。 int[] GetAllLoadingSoundSerialIds(); /// /// 获取所有正在加载声音的序列编号。 /// /// 所有正在加载声音的序列编号。 void GetAllLoadingSoundSerialIds(List results); /// /// 是否正在加载声音。 /// /// 声音序列编号。 /// 是否正在加载声音。 bool IsLoadingSound(int serialId); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 加载声音资源的优先级。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName, int priority); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 播放声音参数。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName, PlaySoundParams playSoundParams); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 用户自定义数据。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName, object userData); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 加载声音资源的优先级。 /// 播放声音参数。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName, int priority, PlaySoundParams playSoundParams); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 加载声音资源的优先级。 /// 用户自定义数据。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName, int priority, object userData); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 播放声音参数。 /// 用户自定义数据。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName, PlaySoundParams playSoundParams, object userData); /// /// 播放声音。 /// /// 声音资源名称。 /// 声音组名称。 /// 加载声音资源的优先级。 /// 播放声音参数。 /// 用户自定义数据。 /// 声音的序列编号。 int PlaySound(string soundAssetName, string soundGroupName, int priority, PlaySoundParams playSoundParams, object userData); /// /// 停止播放声音。 /// /// 要停止播放声音的序列编号。 /// 是否停止播放声音成功。 bool StopSound(int serialId); /// /// 停止播放声音。 /// /// 要停止播放声音的序列编号。 /// 声音淡出时间,以秒为单位。 /// 是否停止播放声音成功。 bool StopSound(int serialId, float fadeOutSeconds); /// /// 停止所有已加载的声音。 /// void StopAllLoadedSounds(); /// /// 停止所有已加载的声音。 /// /// 声音淡出时间,以秒为单位。 void StopAllLoadedSounds(float fadeOutSeconds); /// /// 停止所有正在加载的声音。 /// void StopAllLoadingSounds(); /// /// 暂停播放声音。 /// /// 要暂停播放声音的序列编号。 void PauseSound(int serialId); /// /// 暂停播放声音。 /// /// 要暂停播放声音的序列编号。 /// 声音淡出时间,以秒为单位。 void PauseSound(int serialId, float fadeOutSeconds); /// /// 恢复播放声音。 /// /// 要恢复播放声音的序列编号。 void ResumeSound(int serialId); /// /// 恢复播放声音。 /// /// 要恢复播放声音的序列编号。 /// 声音淡入时间,以秒为单位。 void ResumeSound(int serialId, float fadeInSeconds); } }