DirectSoundはWindows用の最高のオーディオ抽象化レイヤーですか?
-
03-07-2019 - |
質問
DirectSoundはWindows用の最高のオーディオ抽象化レイヤーですか? 特定のチップセットに構築された非常に悪いサウンド実装からアブストレーションレイヤーにアプリを切り替えます。
アプリはネイティブWinform、.net 3.5です。 DirectX / DirectSoundが選択される可能性が高いですが、オーバーヘッドについて少し心配しています。他のオプションはありますか?それとも、他のことについて考えることさえ愚かですか?
解決
DirectSoundは、今日のMicrosoftから過去に受けた愛と同じものを得ていない。 DirectXに関する限り、代わりにXAudio2またはXACTを試すことができます。それらを愛する人もいれば、嫌いな人もいます。 XAudio2はより低レベルですが、XACTはかなり高レベルです。どちらもMicrosoft XNAからアクセスできます。MicrosoftXNAはManaged DirectXに似ていますが、積極的に開発されています。
ただし、DirectXに付属しているものの使用に制限されません。すばらしいものが必要な場合は、 FMod を試してください。大金を払いたくない場合に備えて、彼らはまだシェアウェア/愛好家のライセンスモデルとフリーウェアのライセンスモデルを持っています。
選択は、サウンドをどのように処理するかによって異なります。
他のヒント
SDL の見栄えが良いかどうかを確認します。
まあ、代わりに OpenAL を試すことができます。 Direct3Dに対するOpenGLとは、DirectSound(3D)に対するOpenALです。インターフェイスはOpenGLに非常に似ていますが、気に入らない場合は、おそらくOpenALも嫌いでしょう。また、このlibのWindowsバージョンが独自のネイティブ実装であるか、DirectSoundを呼び出すだけで、その上にある(薄い?)ラッパーであるかもしれません。
DirectSoundはかなり良いです。
低レイテンシーまたは複数のサウンドカードを介したサウンド入出力の同時サポートが必要な場合は、ASIOもご覧ください:
waveOut ... API は引き続きオプションです。マネージコードから操作するのは難しいですが、この方法で一度に複数のサウンドを再生できます(少なくともXPとVistaでは)。
時々サウンドを再生する必要がある場合、 System.Media.SoundPlayer は非常に使いやすいです。ただし、このコンポーネントで一度に複数のサウンドを再生することはできません。
DirectSoundは、他の唯一の主要な代替手段です。必要な場合は、ソフトウェアシンセサイザーが組み込まれています。
編集:SDLは面白そうです。ありがとう、シジン。
SharpDX は面白そうです。後者のx86の制限のため、Managed DirectXの代替として試してみる予定です。