音声処理:DirectSound を使用する必要がありますか、それとも直接 Win32 API を使用する必要がありますか?

StackOverflow https://stackoverflow.com/questions/534865

質問

次のようなアプリケーションを作成しています。

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

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

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

DirectSound を使用する必要がありますか、それとも生の Windows API を直接使用する必要がありますか?
DirectSound は何か役に立ちますか?

前もって感謝します!

役に立ちましたか?

解決

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

他のヒント

どちらでもない?:)

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

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

あなたは、待ち時間に非常に敏感であることを行っているように、

これが鳴ります。これは ASIOする

を見て支払うかもしれません
オーディオプログラミングする -

私は中央ハーモニーを見つけました。また、読みワット:DirectSound対応する

  

Windows Vistaは完全に特徴   基づいてオーディオスタックを再書き込み   ユニバーサルオーディオアーキテクチャ。なぜなら   におけるアーキテクチャの変更の   再設計されたオーディオスタック、ダイレクトパス   DirectSound対応のオーディオドライバへ   存在しません。

     

そのためのXbox 360とMicrosoftの   Windowsの統合は、Microsoftがあります   積極的に移行するために、開発者をプッシュ   同等のXboxへの新しいアプリケーション   このようXAudioやXACTなどのオーディオのAPIます。

OpenALのの有望に見える。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top