音声処理:DirectSound を使用する必要がありますか、それとも直接 Win32 API を使用する必要がありますか?
-
22-08-2019 - |
質問
次のようなアプリケーションを作成しています。
- マイクから録音し、入力に対してリアルタイム処理を実行します。
- 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のの有望に見える。