//------------------------------------------------------------
// 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);
}
}