音源 (SoundSource)

概要

音ファイルから生成された音の情報を定義します。このクラスは音の情報を格納しているだけであり、実際に音を再生するにはこれをサウンドに渡す必要があります。

このクラスには音のループポイントを設定できます。音をループさせるにはIsLoopingModeをtrueにします。ループポイントを設定していない場合、音を最後まで再生したら最初に戻ってループします。
LoopStartingPoint及び、LoopEndPointを設定すると、先頭から音を再生しLoopEndPointに到達したらLoopStartPointの位置に戻って再開します。

ループ

主なメソッド

なし

主なプロパティ

名称 説明
LoopStartingPoint ループポイントの開始地点
LoopEndPoint ループポイントの終了地点
IsLoopingMode 音がループするか
Length 音の長さ

主なイベント

なし

使用方法

SoundクラスとSoundSourceのサンプルです。


  #include <ace.h>
  
  // Soundを用いて音を鳴らすサンプルです。
  int main()
  {
      // AC-Engineを初期化する。
      ace::Engine::Initialize(ace::ToAString("Sound").c_str(), 640, 480, ace::EngineOption());
  
      // 音ファイルを読み込む。
      std::shared_ptr<ace::SoundSource> se1 = ace::Engine::GetSound()->CreateSoundSource(ace::ToAString("Data/Sound/se1.wav").c_str(), true);
      std::shared_ptr<ace::SoundSource> bgm1 = ace::Engine::GetSound()->CreateSoundSource(ace::ToAString("Data/Sound/bgm1.ogg").c_str(), false);
  
      // 音を再生する。
      int id_se1 = ace::Engine::GetSound()->Play(se1);
      int id_bgm1 = ace::Engine::GetSound()->Play(bgm1);
  
      // AC-Engineのウインドウが閉じられていないか確認する。
      while (ace::Engine::DoEvents())
      {
          // AC-Engineを更新する。
          ace::Engine::Update();
  
          // 音が再生終了してるか調べる。
          if (!ace::Engine::GetSound()->GetIsPlaying(id_bgm1))
          {
              break;
          }
      }
  
      // AC-Engineの終了処理をする。
      ace::Engine::Terminate();
  
      return 0;
  }