WikiトップAugust Framework>AF_チュートリアル4

August Framework : チュートリアル 4 ~ 音を出してみる

(本項で説明する機能は ver 0.7.0 以降でのみ使えます。)

前回

もう前置きとか要らないと思うんで、イキナリサンプルコード出しますよ。(ぉ

  1. #include "stdafx.h"
  2. class CMglTestFrame : public CMglguiWindow
  3. {
  4. private:
  5. public:
  6. void OnInit(){
  7. // wavファイルの読み込み
  8. m_audio.Load("hoge.wav");
  9. m_audio.Load("hoge2.wav","ほげ2");
  10. // キーボードイベントハンドラ登録
  11. RegistKbHandler(
  12. MGL_KB_EVT_HANDLER_EVTTYPE_ON_KEYDOWN,
  13. DIK_Z,
  14. (MGL_KB_EVT_HANDLER_CALLBACK)PlaySoundHoge);
  15. RegistKbHandler(
  16. MGL_KB_EVT_HANDLER_EVTTYPE_ON_KEYDOWN,
  17. DIK_X,
  18. (MGL_KB_EVT_HANDLER_CALLBACK)PlaySoundHoge2);
  19. }
  20. // ZとかXを押すとwav再生
  21. bool PlaySoundHoge(){
  22. m_audio.Play("hoge.wav");
  23. return true;
  24. }
  25. bool PlaySoundHoge2(){
  26. m_audio.Play("ほげ2");
  27. return true;
  28. }
  29. };
  30. // WinMain
  31. int APIENTRY WinMain(HINSTANCE hInstance,
  32. HINSTANCE hPrevInstance,
  33. LPSTR lpCmdLine,
  34. int nCmdShow )
  35. {
  36. CMglTestFrame frame;
  37. frame.Start();
  38. return 0;
  39. }

m_audioにLoad()でwavファイルを読み込みます。今んところ対応してるのは.wavだけ。MP3とかには対応してないです。
第二引数としてエイリアス名を指定できます。エイリアス名を指定しておくと、ファイル名、ファイルパスが変わっても 他のところまで直す必要がないので便利です。

m_audio.Play()にて、既にLoadしてあるwavを再生します。Load時にエイリアス名を指定していない場合にはファイル名を、
エイリアス名を指定している場合にはそのエイリアス名を指定します。
また、m_audio.LoopPlay()にてループ再生も可能です。第二引数としてループ回数を指定することも出来ます(デフォルト値:無限ループ)。
停止はStop()メソッドにて出来ます。