4

私はアプリケーションを作成しています:

  • マイクから録音し、入力に対してリアルタイム処理を行います
  • MP3 ファイル (通常の曲) を再生しますが、リアルタイムで出力を操作します
  • 時々、この曲に追加のサウンドを再生する必要がありますが、バッファーを追加するだけでそれができると思います。

要するに、録音と再生の両方に循環バッファーが必要であり、再生しようとしている新しいデータを 20 ミリ秒ごとに出力バッファーに「フィード」する必要があります。

私は DirectSound を見てきましたが、あまり役に立たないようです。出力バッファへの読み取りと書き込みは Win32 と非常に似ているように見えますが、それが役立つと思われる唯一の場所は、メインの曲の上に「追加のサウンド」を再生することです。

DirectSound を使用する必要がありますか、それとも生の Windows API に直行する必要がありますか?
DirectSound は私のために何かをするつもりですか?

前もって感謝します!

4

4 に答える 4

5

Directsound API は、より優れたリアルタイム制御を提供します。これらは、Windows でサポートされているサウンドの使用方法でもあります。私は、win32 API が廃止されたという印象を受けましたが、これについては間違っている可能性があります。

この質問はあなたの質問に近いです

https://stackoverflow.com/questions/314522/what-is-the-best-c-sound-api-for-windows

また

DirectSound は Windows 用の最高のオーディオ抽象化レイヤーですか?

最後になりましたが、これはマイクロソフトが言わなければならないことです http://msdn.microsoft.com/en-us/library/dd370784(VS.85).aspx

于 2009-02-11T00:25:14.327 に答える
5

ない?:)

DirectSound は waveOut の代替であるという話ですが、DirectSound は、Vista で非推奨の API として DirectInput に加わり、WASAPIに置き換えられました。DirectSound と waveOut は、Vista のユーザー空間 WASAPI の上に実装されています。XP では、waveOut と DirectSound は同じカーネル レベルの Mixer API にフィードします。

これらすべてのインターフェイスを統合するには、OpenGL と同じように十分にサポートされているオーディオ標準である OpenAL のようなものを検討してください。

于 2009-02-11T00:32:27.350 に答える
3

レイテンシーにかなり敏感になるようですね。ASIOを見るとお金がかかるかもしれません

于 2009-02-11T00:27:13.993 に答える
2

Harmony Central - Audio Programmingを見つけました。w:DirectSoundもお読みください。

Windows Vista は、ユニバーサル オーディオ アーキテクチャに基づいて完全に書き直されたオーディオ スタックを備えています。再設計されたオーディオ スタックのアーキテクチャが変更されたため、DirectSound からオーディオ ドライバーへの直接的なパスは存在しません。

Xbox 360 と Microsoft Windows の統合により、Microsoft は、新しいアプリケーションを XAudio や XACT などの同等の Xbox オーディオ API に移行するよう開発者に積極的に働きかけています。

OpenALは有望に見えます。

于 2009-02-11T00:25:50.707 に答える