問題タブ [xaudio2]
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++ - XAudio2 で特定の時間の周波数値を取得するにはどうすればよいですか?
.wav
XAudio2 (Windows 8.1) を使用して既にオーディオをバッファーにロードしており、それを再生するには、次を使用する必要があります。
XAudio2で特定の時間の周波数値を取得するにはどうすればよいですか?
audio - WinRT - さまざまなデバイスへのオーディオのレンダリング
複数のビデオ ファイルを同時に再生する WinRT プロジェクトに取り組んでいます。再生中のビデオ ファイルからオーディオをレンダリングするために使用される 3 つのオーディオ デバイスがマシンに接続されています。同時に再生できるビデオの最大数は 3 です。したがって、各オーディオ デバイスは、対応するビデオ ファイルからオーディオをレンダリングするために使用されます。つまり、オーディオ デバイス 1 はビデオ 1 を再生します。それが私が持っている要件です。
これまでのところ、私は2つのアプローチに出くわしました。まず、Dolby またはその他の API を使用して、音声を対応するデバイスにチャネル化します。つまり、左チャンネルはデバイス 1 に、中央/中央はデバイス 2 に、右チャンネルはデバイス 3 にレンダリングされます。 Windows 10 用のDolby Audio サンプル アプリを試しました。Windows 10 Dolby APIのドキュメントが見つかりませんでした。このアプローチでは、特定のオーディオ デバイスへのチャネルの形式でオーディオをレンダリングできますか? とにかくオーディオをマージしたくありません。
次に、3 つのサウンド カードを使用し、それぞれにオーディオ デバイスを接続します。デバイス ID を指定して、オーディオを再生するデバイスを選択します。必要なデバイス ID で createMasteringVoice() メソッドを呼び出して、 XAudio2でこのアプローチを試しました。これは単一のオーディオ ファイルでは機能しましたが、再生中の複数のビデオのオーディオをレンダリングしたいと考えています。
どちらのアプローチも、コア要件をまだ解決していません。シナリオを考えると、要件を満たすために従うべき最善のアプローチは何ですか?
winapi - 登録されていない COM DLL をどのように初期化しますか?
最近、一部のクライアントで C:/Windows/System32 ディレクトリから XAudio2_7.dll が失われ、音声が聞こえなくなりました。この問題を解決するには、DirectX を再インストールするか、DLL を登録するだけで十分ですが、管理者権限を必要としない解決策を探しています。これは Windows 7 用です。アプリケーションは CPP で記述されており、一部は 32 ビットで残りは 64 ビットです。
exe の同じディレクトリ内に XAudio2_7.dll のローカル コピーがありますが、それは COM dll であるため、その dll が登録されていない限り読み込まれません。現在のユーザーの登録 (「Regsvr32.exe /n /i:user XAudio2_7.dll」を使用) は、dll が必要なインターフェイス「DllInstall」を実装していないため、機能しません。
私が試したアプローチの 1 つは、動的リンクを使用する代わりに、XAudio の .lib を静的にリンクすることです。Microsoft は XAudio2_7.lib を DirectX SDK と共に配布していません。「xaudio2.lib インポート ライブラリを含む DirectX SDK のバージョンはありません。DirectX SDK のバージョンでは、COM を使用して新しい XAudio2 オブジェクトを作成します。」msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2create%28v=vs.85%29.aspx
確かに、これは、静的な XAudio ライブラリを作成したとしても、他のライブラリで定義された外部オブジェクトに依存しているように聞こえるため、使用できない可能性があることを示唆しています。私の仮説が間違っている場合に備えて、テストする価値はありました。
このリンクに記載されている手順に従ってください: adrianhenke.wordpress.com/2008/12/05/create-lib-file-from-dll/
この方法では、なかなか進みませんでした。日付が付けられた記事以外に、これにはいくつかの問題がありました。ブログ内の MS リンクは、これが 32 ビット DLL 用であると述べています。32 ビット dll の場合でも、dumpbin はインターフェイス関数のみをエクスポートしたため機能しませんでした。ファイル C:\XAudioTest\32Bit\XAudio2_7.dll のダンプ
後で、別の MSDN 記事からこの引用を見つけました。「COM 標準では、COM DLL が DllCanUnloadNow、DllGetClassObject、DllRegisterServer、および DllUnregisterServer をエクスポートする必要があります。通常、それらは他に何もエクスポートしません。これは、dumpbin.exe を使用して COM オブジェクトまたはメソッド情報を取得できないことを意味します。」msdn.microsoft.com/en-us/library/aa446532.aspx
また、COM dll から .lib を作成できると主張するサードパーティ プログラムを使用してみました。www.binary-soft.com/dll2lib/dll2lib.htm
これにより 32 ビットの .lib ファイルが生成されましたが、lib ファイルを使用してコンパイルすると、未解決の外部シンボルが生成されました。このユーティリティには、未解決のシンボルを処理するメソッドが付属していますが、Symbol Finder または Advanced Conversion Options 内に何かを入力するとクラッシュします。最新のリリース ノート (3.00) を見ると、Vista のサポートが追加され、Windows 7 については言及されていないことがわかりました。また、これは 64 ビット dll では機能しません。
このリンクで説明されている登録されていない COM DLL を使用するように初期化シーケンスを変更する別の方法を試しました: Use COM Object from DLL without register 初期化コードは次のようになります。
XAudio2Create 関数を除くすべての WinAPI 関数呼び出しが渡されました。XAudio2Create がファクトリから作成されたオブジェクトを使用しない理由がわかりません。また、そのオブジェクトを使用するために何をする必要があるのかもわかりません。ここで何ができるかはまだ調査中ですが、クローズド ソース ライブラリをデバッグするのは困難です。
COM DLL について知る前に、DLL リダイレクトを使用してアプリケーションに特定の DLL を強制的に使用させる方法を試しました。ここで説明されているプロセスの使用: マニフェスト XAudio2Createを使用した DLL リダイレクトはまだ失敗しました。マニフェストの何が問題なのかを特定するための強力な戦略はありません。また、dll リダイレクトのマニフェストに関する最新のドキュメントもあまり見つかりませんでした。この音から、これは主に特定の DLL バージョンをロードするために使用されます。msdn.microsoft.comによると、exeの同じディレクトリ内にXAudio2_7のローカルコピーが既に存在するため、DLLリダイレクトは必要な方法ではないと思います。つまり、システムディレクトリ内のXAudio2_7よりも優先する必要があります。 /en-us/library/windows/desktop/ms682586%28v=vs.85%29.aspx
注: 2 つ以上のリンクを投稿するのに十分な評価ポイントがないため、一部のアドレスのハイパー リンクを削除しました。
c++ - C++ - EAX で DirectSound または XAudio2 を使用する
C ++でDirectSoundまたはXAudio2でEAXを使用するサンプル/チュートリアル/リソースはありますか? 何も見つからず、ゲーム エンジンに本当に必要です。
windows - XAudio2 ソース ボイスから現在のサンプル再生位置を取得するにはどうすればよいですか?
IXAudio2SourceVoice
提出された を再生している がありますXAUDIO2_BUFFER
。これらから、現在再生中のバッファ内の再生位置をサンプル単位で取得するにはどうすればよいですか?
ご協力いただきありがとうございます!
c++ - XAudio2 dll バージョンの設定方法
私の MSVC 2015 C++ アプリケーション プロジェクトでは、xaudio2.lib
. したがって、.cvxproj には行が含まれています
ビルドされた .exe を調べると、行が見つかりますXAudio2_8.dll
。
そのため、コンパイラ (またはリンカ) は 2_8 バージョンのみを使用することを決定したようです。
XAudio2.dll
の下位バージョンのみがインストールされているため、Windows 7 マシンでアプリを実行できないという問題が発生し、XAudio2_8.dll
.
では、プロジェクトを修正/変更して、結果の .exe を Windows 7 で実行できるようにするにはどうすればよいでしょうか? XAudio2_7.dll
たとえば、使用するように指定するにはどうすればよいですか?