1#include "scene/components/AudioComponent.h"
2#include "scene/GameObject.h"
8 if (json.contains(
"audio"))
10 auto& clipsObject = json[
"audio"];
11 for (
auto& clip : clipsObject)
13 std::string name = clip.value(
"name",
"noname");
14 std::string path = clip.value(
"path",
"");
18 float volume = clip.value(
"volume", 1.0f);
19 audio->SetVolume(volume);
29 for (
auto& clip : m_clips)
31 if (clip.second->IsPlaying())
33 clip.second->SetPosition(pos);
45 auto it = m_clips.find(name);
46 if (it != m_clips.end())
50 it->second->Play(loop);
57 auto it = m_clips.find(name);
58 if (it != m_clips.end())
69 auto it = m_clips.find(name);
70 if (it != m_clips.end())
74 return it->second->IsPlaying();
void LoadProperties(const nlohmann::json &json) override
void Play(const std::string &name, bool loop=false)
void Stop(const std::string &name)
void RegisterAudio(const std::string &name, std::shared_ptr< Audio > &clip)
void Update(float deltaTime) override
bool IsPlaying(const std::string &name)
static std::shared_ptr< Audio > Load(const std::string &path)
glm::vec3 GetWorldPosition() const