feat(sound): sound player release function

This commit is contained in:
Nomango 2023-09-24 17:11:51 +08:00
parent a7c4e9402b
commit 52cbf0d1a6
2 changed files with 22 additions and 1 deletions

View File

@ -155,6 +155,11 @@ void SoundPlayer::StopAll()
}
}
void SoundPlayer::ReleaseSound(size_t id)
{
sound_cache_.erase(id);
}
void SoundPlayer::ClearCache()
{
sound_cache_.clear();

View File

@ -40,6 +40,8 @@ KGE_DECLARE_SMART_PTR(SoundPlayer);
class KGE_API SoundPlayer : public ObjectBase
{
public:
using SoundMap = Map<size_t, SoundPtr>;
SoundPlayer();
~SoundPlayer();
@ -120,6 +122,15 @@ public:
/// @brief 停止所有音频
void StopAll();
/// \~chinese
/// @brief 释放音乐对象缓存
/// @param id 音频标识符
void ReleaseSound(size_t id);
/// \~chinese
/// @brief 获取缓存
const SoundMap& GetCache() const;
/// \~chinese
/// @brief 清除缓存
void ClearCache();
@ -127,10 +138,15 @@ public:
private:
float volume_;
using SoundMap = Map<size_t, SoundPtr>;
SoundMap sound_cache_;
};
/** @} */
inline const SoundPlayer::SoundMap& SoundPlayer::GetCache() const
{
return sound_cache_;
}
} // namespace audio
} // namespace kiwano