問題タブ [fmod]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - fmod Visual C ++テストを追加した後、1つのテストで特定のコード行がある場合、すべてのテストが失敗し、型を取得できず、FileNotFoundExceptionが発生します
何が問題を引き起こしたのかはわかりましたが、理由はまだわかりません。これはfmod
、を使い始めたときに発生したものであり、リンカーが静的ライブラリと.dll
の実行を決定する方法と関係があるはずです。テスト中の私のコードは静的ライブラリです。これはfmodex_vc
、別の静的ライブラリを参照します。これは、ある時点で(いつかはわかりませんが)、そのにロードすることを決定しますfmodex.dll
。(これは他のすべてと同じディレクトリにあるので、なぜそれが見つからないのかわかりません。)私の知る限り、テスト対象のコードはfmod初期化関数を絶対に呼び出しませんが、fmodにはいくつかあります。自分自身を初期化し、dllにロードする静的グローバル初期化子?そして、そのコードは、それを使用するモジュール内のコードが...使用された場合にのみ引き込まれますか?
VisualStudioテストフレームワークを使用してアンマネージC++コードをテストしていますが、fmodを使用し始めると、機能しなくなりました。何もしない「テスト」テストでさえ、すべてのテストが報告されます(読みやすくするためにラップされています)。
ファイルを除外して再度追加するなど、試行錯誤を繰り返し.cpp
た結果、問題が発生するのは1つのテストファイルだけであることがわかりました。そして、この行が呼び出された場合にのみ実行されます。
興味深いことに、その行がコード内にある場合、すべてのテストはそのメッセージで失敗し始めます。 EntityMgr::Init()
はほとんど何もしない関数です:
と
と
Entity
、FWIWは、ポインタがなくfloat
、フィールドにさまざまなsがあるだけの、かなりバニラなクラスです。
- テストをどのように実行しても(テストビューから、選択して実行、すべて実行、コマンドラインから実行、テストメニューから)、エラーが発生します。
- デバッガーを使用してテストにステップインしようとすると失敗します。デバッガーがステップインする前にテストが失敗します。システム例外でブレークするようにデバッガーを設定しても、何も実行されませんでした。
- テスト対象のコードは静的な.libです。CLRサポートは
/clr
です。 - ああ、これはちょうど:静的エンティティメンバー関数を呼び出す場合、同じ取引です。上記の静的関数をクラスの外に移動した場合も、同じようになります。しかし、その関数を別のモジュールに移動すれば問題ありません。
例外でデバッガーを中断するように設定すると、何か面白いものが得られます。
もちろん、その場所にはソースコードはありません。コールスタックは次のとおりです。
そして、これがmstestが報告するスタックトレースです-私はそれから何も有用なものを手に入れません。
なぜfmodがこれを行うのですか?
fmod - FMOD を使用して各スピーカーの音を遅らせるにはどうすればよいですか?
マルチチャンネルをサポートするサウンドをセットアップしたので、各スピーカーでサウンドを遅延させる必要があります。FMODexでこれを行うにはどうすればよいですか? それは可能ですか?
私を助けてくれてありがとう!:)
visual-studio - fmod VS2008依存プロジェクトの未解決の外部
現在、プロジェクトで最新の安定した fmod ex を使用しようとしています。
engine4 というプロジェクトにメインの実行可能ファイルがあり、ソリューションにも ti が依存する DX9Platform という名前のプロジェクトがあります。すべての fmod コードは、lib ファイルを生成するこの DX9Platform プロジェクトにあります。
DX9Platform には fmodex_vc.lib が含まれており、正常にビルドされます。ただし、Engien4 をビルドすると、DX9Platform プロジェクトで fmod を使用するファイルを参照する未解決の外部シンボル メッセージが発生します。
fmodex_vc.lib を Engine4 プロジェクトに追加しようとしましたが、成功しませんでした。これを修正するにはどうすればよいですか?
リンカーの出力は次のとおりです。
c# - FMOD サウンド ライブラリ - 同期点に頭がおかしくなる!
FMODの経験がある人は、私がそれを失うのを止めてください. これらの同期点を動作させることができません。イントロとループの 2 つの部分で構成されるゲーム ミュージックがあります。それらは別々の音で、イントロが終わると永遠に繰り返されるループセクションに入る。イントロの最後に同期点を設定して、ループを開始しました。音楽を停止して再開しようとするまで(たとえば、プレーヤーが死亡したとき)、問題なく動作します。何があっても、同期点は、イントロの終わりに設定されているにもかかわらず、イントロが再開されるとすぐに発火することを主張します。その効果は、音楽の両方のセクションが同時に再生されるということです。チャネルを再利用するように指示しているため、1 つのチャネルで再生されているように見えます。それは可能ですか?これが私のコードの一部です(システム、イントロ、ループ、およびチャネルはメンバー変数であることに注意してください):
そして、ここに同期点があります:
少なくとも、これはコールバックの 1 つのバージョンです。他にも20本ほど試しました。同期点を削除するように指示していることに注意してください。リターンを確認したところ、問題ありませんでした。念のため、 loop.deleteSyncPoint も試しました。また、起動していたのが StartLoop 同期点であることを確認するために、getsyncpointinfo も実行しました。それでも、stop の呼び出しの後、play が再度呼び出されると起動します。
Stop() も同期点を削除しようとしますが、同様に失敗することに注意してください (結果が OK に戻ったとしても)。停止時にチャンネル位置を0に設定してみましたが、さらに悪化しました。deletesyncpoint() 呼び出しの後に同期点で channel.stop() を試しましたが、それを削除しようとしたにもかかわらず、停止する呼び出しごとに同期点を呼び出し続けたため、スタック オーバーフローが発生しました。私はそれに間違ったポインタか何かを与えていますか? ループ セクションを再生しないというフラグを作成しようとしましたが、Play() の途中で設定され、Play() が終了した直後に同期点が呼び出されるため、できません。システム更新への次の呼び出しで。FMOD が壊れていますか、それとも明らかな何かが欠けていますか? または、本当にあいまいで文書化されていないもの...
.net - .NETでオーディオメディアを再生するためのLib?
fmod.netを試しましたが、「System.BadImageFormatException」エラーが発生しました。次に、WindowsMediaPlayerを試して、サウンドを再生しました。ただし、現在のサウンドが終了したときにサウンドを再生する際に問題が発生します(以下のコールバックコード。状態変化中に新しい曲を再生するのは好きではないようですが、曲が終了したときに通知する別の方法が見つかりません)、これを使用しますリンクタイトルは取得できましたが、アーティスト、アルバムなどは取得できませんでした。
サウンドを再生するためにどのlibを使用できますか(mp3、m4a、oggとaacが欲しい)。私はFFMPEG.NETを調べて、リリースのないプロジェクトと、変換のみを行うように見える(そして悪いイメージの例外もある)fflibと呼ばれる別のプロジェクトを見つけました。何を使えばいいですか?またはWMPLib.WindowsMediaPlayerでタイトル/アーティストなどを取得して、終了時に別の曲を再生させるにはどうすればよいですか(WMP内にプレイリストを追加したくないのですが、それを維持したいのですが、曲は終了してさらにアクションを実行します)。
silverlight - Silverlight アプリケーションの Naudio または FMOD ライブラリ
マイクからオーディオを取得し、それを書き込んで「オンフライ」でストリーミングする必要があります。宛先マシンはこのデータを読み取り、再生します。すべてが Silverlight アプリケーションになります。私の目的のためにNaudioライブラリまたはFMODを使用できますか?
事前にthx!
c - FMOD を使用してサウンドの一部のみを再生する
FMOD を使用してサウンドの一部のみを再生しようとしています。たとえば、200000 フレーム ファイルのフレーム 50000 ~ 100000 です。順方向にシークする方法をいくつか見つけました (つまり、フレーム 50000 で再生を開始する) が、サウンドが 100000 で再生を停止することを確認する方法は見つかりませんでした。などを写真に入れますか?
また、ストリーミング オプションを使用していることにも言及する必要があります。これらのサウンドは任意に大きく、快適に/すばやくメモリにロードできないと想定する必要があります。
fmod - 非再生オーディオの FMOD
- ねえ、再生されていない場合、FMOD を使用して曲のセクションのオーディオ スペクトルを取得する方法はありますか?
- 曲を再生する前に、FMOD (+opengl/openframeworks/etc.) を使用して完全な曲の波形をレンダリングできますか?
c - FMOD 再生オーバーラップ サウンド
これは FMOD の組み込み機能かもしれませんが、オーバーライドできるかどうかを確認したいと思います。
FMOD_System_PlaySound で SOUND を再生する場合、
(はい、私はC APIを使用しています;))
すでに SOUND の再生を開始している場合は、元の再生が停止され、SOUND が最初からやり直されます。
原音が「切れる」効果です。私はそれを望んでいません、私はSOUNDがそれ自体をオーバーラップさせたいです...私は、サウンドの別の「インスタンス」が、すでに再生されている元のサウンドに影響を与えずに再生を開始することを望んでいます。
c++ - CAPI関数がC++メンバー関数コードにコールバックします
だから、私はFMOD APIを使用していて、それは実際にはCAPIです。
それは悪いことではありません。それだけでは、C++コードとのインターフェースがうまくいきません。
たとえば、
のCスタイルの関数callbackFunc
が必要ですが、クラスのメンバー関数を渡したいと思います。
私はこれにWin32トリックを使用して、メンバー関数を静的にしました。その後、FMODへのコールバックとして機能します。
ここで、FMODのCネスを説明するために、コードをハックして一部のメンバーを静的にする必要があります。
FMODでそれが可能かどうか、またはコールバックを特定のC ++オブジェクトのインスタンスメンバー関数(静的関数ではない)にリンクする回避策があるかどうか疑問に思います。それははるかにスムーズになります。