2

実際にFMODで音を鳴らしてみましたがうまくいきませんでした。

#ifndef __SOUND_HH__
#define __SOUND_HH__

#include <string>
#include <fmodex/fmod.h>

class Sound
{
  FMOD_SYSTEM *sys;

  FMOD_SOUND *explosion;
  FMOD_RESULT resExplosion;
  FMOD_CHANNEL *channel1;

public:
  Sound();
  ~Sound();

  void play(const std::string &);
};

#endif

#include <string>
#include <iostream>
#include "Sound.hh"

Sound::Sound()
{
  FMOD_System_Create(&this->sys);
  FMOD_System_Init(this->sys, 1, FMOD_INIT_NORMAL, NULL);
}

Sound::~Sound()
{
  FMOD_System_Release(sys);
}

しかし、私がプレイするとき( "mysound.wav"); 私のコードでは何も追加せず、戻り値を確認し、問題はありません。何か考えはありますか?ありがとう

void Sound::play(const std::string &filename)
{
  FMOD_System_CreateStream(this->sys, filename.c_str(), FMOD_HARDWARE | FMOD_LOOP_OFF | FMOD_2D, 0, &this->explosion);
  FMOD_System_PlaySound(sys, FMOD_CHANNEL_FREE, explosion, 0 , &channel1);
        std::cout << "playayayyayayayayya" << std::endl;
}
4

1 に答える 1

0

Sound変数を動的に割り当てていません。

必要なものは次のとおりです。

Sound sound = new Sound();

sound->play("./sound/explosion.wav");

またはBombe::updatedoで:

Sound sound;

sound.play("./sound/explosion.wav");

explosion.wavまた、フォルダにあることを確認してくださいsound/

于 2012-05-31T15:05:34.737 に答える