123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- //------------------------------------------------------------
- // 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
- {
- /// <summary>
- /// 声音管理器接口。
- /// </summary>
- public interface ISoundManager
- {
- /// <summary>
- /// 获取声音组数量。
- /// </summary>
- int SoundGroupCount
- {
- get;
- }
- /// <summary>
- /// 播放声音成功事件。
- /// </summary>
- event EventHandler<PlaySoundSuccessEventArgs> PlaySoundSuccess;
- /// <summary>
- /// 播放声音失败事件。
- /// </summary>
- event EventHandler<PlaySoundFailureEventArgs> PlaySoundFailure;
- /// <summary>
- /// 播放声音更新事件。
- /// </summary>
- event EventHandler<PlaySoundUpdateEventArgs> PlaySoundUpdate;
- /// <summary>
- /// 播放声音时加载依赖资源事件。
- /// </summary>
- event EventHandler<PlaySoundDependencyAssetEventArgs> PlaySoundDependencyAsset;
- /// <summary>
- /// 设置资源管理器。
- /// </summary>
- /// <param name="resourceManager">资源管理器。</param>
- void SetResourceManager(IResourceManager resourceManager);
- /// <summary>
- /// 设置声音辅助器。
- /// </summary>
- /// <param name="soundHelper">声音辅助器。</param>
- void SetSoundHelper(ISoundHelper soundHelper);
- /// <summary>
- /// 是否存在指定声音组。
- /// </summary>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <returns>指定声音组是否存在。</returns>
- bool HasSoundGroup(string soundGroupName);
- /// <summary>
- /// 获取指定声音组。
- /// </summary>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <returns>要获取的声音组。</returns>
- ISoundGroup GetSoundGroup(string soundGroupName);
- /// <summary>
- /// 获取所有声音组。
- /// </summary>
- /// <returns>所有声音组。</returns>
- ISoundGroup[] GetAllSoundGroups();
- /// <summary>
- /// 获取所有声音组。
- /// </summary>
- /// <param name="results">所有声音组。</param>
- void GetAllSoundGroups(List<ISoundGroup> results);
- /// <summary>
- /// 增加声音组。
- /// </summary>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="soundGroupHelper">声音组辅助器。</param>
- /// <returns>是否增加声音组成功。</returns>
- bool AddSoundGroup(string soundGroupName, ISoundGroupHelper soundGroupHelper);
- /// <summary>
- /// 增加声音组。
- /// </summary>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="soundGroupAvoidBeingReplacedBySamePriority">声音组中的声音是否避免被同优先级声音替换。</param>
- /// <param name="soundGroupMute">声音组是否静音。</param>
- /// <param name="soundGroupVolume">声音组音量。</param>
- /// <param name="soundGroupHelper">声音组辅助器。</param>
- /// <returns>是否增加声音组成功。</returns>
- bool AddSoundGroup(string soundGroupName, bool soundGroupAvoidBeingReplacedBySamePriority, bool soundGroupMute, float soundGroupVolume, ISoundGroupHelper soundGroupHelper);
- /// <summary>
- /// 增加声音代理辅助器。
- /// </summary>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="soundAgentHelper">要增加的声音代理辅助器。</param>
- void AddSoundAgentHelper(string soundGroupName, ISoundAgentHelper soundAgentHelper);
- /// <summary>
- /// 获取所有正在加载声音的序列编号。
- /// </summary>
- /// <returns>所有正在加载声音的序列编号。</returns>
- int[] GetAllLoadingSoundSerialIds();
- /// <summary>
- /// 获取所有正在加载声音的序列编号。
- /// </summary>
- /// <param name="results">所有正在加载声音的序列编号。</param>
- void GetAllLoadingSoundSerialIds(List<int> results);
- /// <summary>
- /// 是否正在加载声音。
- /// </summary>
- /// <param name="serialId">声音序列编号。</param>
- /// <returns>是否正在加载声音。</returns>
- bool IsLoadingSound(int serialId);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="priority">加载声音资源的优先级。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName, int priority);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="playSoundParams">播放声音参数。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName, PlaySoundParams playSoundParams);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="userData">用户自定义数据。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName, object userData);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="priority">加载声音资源的优先级。</param>
- /// <param name="playSoundParams">播放声音参数。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName, int priority, PlaySoundParams playSoundParams);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="priority">加载声音资源的优先级。</param>
- /// <param name="userData">用户自定义数据。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName, int priority, object userData);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="playSoundParams">播放声音参数。</param>
- /// <param name="userData">用户自定义数据。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName, PlaySoundParams playSoundParams, object userData);
- /// <summary>
- /// 播放声音。
- /// </summary>
- /// <param name="soundAssetName">声音资源名称。</param>
- /// <param name="soundGroupName">声音组名称。</param>
- /// <param name="priority">加载声音资源的优先级。</param>
- /// <param name="playSoundParams">播放声音参数。</param>
- /// <param name="userData">用户自定义数据。</param>
- /// <returns>声音的序列编号。</returns>
- int PlaySound(string soundAssetName, string soundGroupName, int priority, PlaySoundParams playSoundParams, object userData);
- /// <summary>
- /// 停止播放声音。
- /// </summary>
- /// <param name="serialId">要停止播放声音的序列编号。</param>
- /// <returns>是否停止播放声音成功。</returns>
- bool StopSound(int serialId);
- /// <summary>
- /// 停止播放声音。
- /// </summary>
- /// <param name="serialId">要停止播放声音的序列编号。</param>
- /// <param name="fadeOutSeconds">声音淡出时间,以秒为单位。</param>
- /// <returns>是否停止播放声音成功。</returns>
- bool StopSound(int serialId, float fadeOutSeconds);
- /// <summary>
- /// 停止所有已加载的声音。
- /// </summary>
- void StopAllLoadedSounds();
- /// <summary>
- /// 停止所有已加载的声音。
- /// </summary>
- /// <param name="fadeOutSeconds">声音淡出时间,以秒为单位。</param>
- void StopAllLoadedSounds(float fadeOutSeconds);
- /// <summary>
- /// 停止所有正在加载的声音。
- /// </summary>
- void StopAllLoadingSounds();
- /// <summary>
- /// 暂停播放声音。
- /// </summary>
- /// <param name="serialId">要暂停播放声音的序列编号。</param>
- void PauseSound(int serialId);
- /// <summary>
- /// 暂停播放声音。
- /// </summary>
- /// <param name="serialId">要暂停播放声音的序列编号。</param>
- /// <param name="fadeOutSeconds">声音淡出时间,以秒为单位。</param>
- void PauseSound(int serialId, float fadeOutSeconds);
- /// <summary>
- /// 恢复播放声音。
- /// </summary>
- /// <param name="serialId">要恢复播放声音的序列编号。</param>
- void ResumeSound(int serialId);
- /// <summary>
- /// 恢复播放声音。
- /// </summary>
- /// <param name="serialId">要恢复播放声音的序列编号。</param>
- /// <param name="fadeInSeconds">声音淡入时间,以秒为单位。</param>
- void ResumeSound(int serialId, float fadeInSeconds);
- }
- }
|