サウンド (Sound)

概要

音の生成、管理を行う機能を提供します。音を鳴らす場合は必ず使用する必要があります。

音源をファイルから生成する際、ファイルを解凍するかどうかを指定できます。通常、oggフォーマット等はwavファイルを圧縮した情報を格納し、再生する際にリアルタイムに解凍しつつ再生しています。ここでは、事前にファイルを解凍するか再生中にリアルタイムに解凍するかを指定できます。事前に解凍する場合、読み込み時間は長くなりメモリも消費しますが再生時のCPU負荷は小さくなります。一方、事前に解凍しない場合は、読み込み時間もメモリも小さくなりますが、再生時に若干CPUの処理を必要とします。基本的に、音が長いBGMは圧縮したまま、音が短くたくさん鳴らす効果音は解凍して読み込みます。

再生を開始した音に対する操作はハンドルを経由して操作します。これはBGMは除き殆どの場合音は一度再生を開始したら二度と操作することが少ないからです。
サウンドの引数に再生を開始した時に返された値を停止等の関数の引数に与えることで操作できます。

主なメソッド

名称 説明
CreateSoundSource 音源をファイルから生成します。
Play 音源を指定しその音を再生します。
Stop 再生中の音を停止します。
Pause 再生中の音を一時停止します。
Resume 一時停止中の音を再開します。
SetVolume ボリュームを設定します。
FadeIn 音をフェードインさせます。
FadeOut 音をフェードアウトさせます。

主なプロパティ

なし

主なイベント

なし

使用方法

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