2

ogre3dエンジンのfmodのSoundmanager(クラス)(ラッパー)に問題があります。念のためのコードは次のとおりです。

ISoundManager.h誰かが望むなら、私はそれをアップロードしますが、現在2つ以上のハイパーリンクをアップロードすることはできません。

SoundManager.h http://codeviewer.org/view/code:18c9

SoundManager.cpp http://codeviewer.org/view/code:18ca

サウンドを再生するための簡単なコードピースがあります:

`   SoundManager *soundManagerPtr = new SoundManager;

    soundManagerPtr->Initialize();

    int mySound1 = soundManagerPtr->CreateStream(Ogre::String("boing.wav") );
    int channel1 = 0;

    soundManagerPtr->PlaySound(mySound1, headNode, &channel1);

    delete soundManagerPtr;`

すべてが正常で、サウンドはロードされていますが、PlaySound()関数はエラーをスローせず、サウンドも再生しません。私はogre3dフォーラムで質問していましたが、まだ解決策がありません。

4

2 に答える 2

2

SoundManager コードをすばやく確認したところ、「PlaySound」関数が FMOD の「playSound」関数を呼び出しているようです。FMOD では、"playSound" はブロック操作ではなく、別のスレッドでサウンドの再生を開始してから戻ります。サウンド マネージャーをすぐに削除しているので、まだ何も再生する機会がありません。

于 2011-03-27T22:56:16.803 に答える
0

SoundManager を更新する必要があると思いますが、これは によって行われframeStarted()ます。これは、サウンドの再生を開始するには、 を使用して Ogre アプリケーションの実行を開始する必要があることを意味しますroot->startRendering();。あなたはそれを試しましたか?上記のコードは不完全 (実際に問題がある場合) であるか、グラフィックスのレンダリングを開始して SoundManager の frameStarted を呼び出して、SoundManager の更新を開始する必要があります。

于 2011-03-27T22:40:41.810 に答える