9

Windowsでサウンドを再生する方法はたくさんあります。それぞれの方法の違い、長所、短所はどれですか?

私は少なくとも5つの方法があることを知っています:

  1. 1991 WinMM.dll / mmsys.dll PlaySound
  2. 1995 MCIWnd(@casablancaによって提案されたように)
  3. 1996 DirectSound
  4. 1998 WaveOut
  5. 1999 ASIO
  6. 1999 Windows Media Player ActiveXコントロール?
  7. 2005 WASAPI(XAudio2で使用されます-@ Hanが提案)
  8. 2007 XAudio2
4

2 に答える 2

5

QSoundを使用すると、 Qtアプリケーションの残りの部分にぴったりと収まり、WindowsだけでなくMacOSXやLinuxでも動作します。開発者にとってあまり使いやすいものではないコアのプラットフォーム固有のAPIを見つけることは珍しくありません。次に、コアの上に構築された、開発者にとって使いやすい無数のAPIを見つけます。コアAPIの使用は無視できるほど高速ですが、これらのコアAPIの上にレイヤーを使用すると、ほとんどの場合、より便利で保守しやすくなり、低レベルのコアへの変更からユーザーを保護します。

XAudio2
の説明から編集

XAudio2は、MicrosoftWindowsおよびXbox360用の低レベルのクロスプラットフォームオーディオAPIです。これは、その前身であるDirectSoundおよびXAudioと同様の、ゲームの信号処理およびミキシングの基盤を提供します。Windowsゲーム開発者にとって、XAudio2はDirectSoundの待望の代替品です。

したがって、コアのプラットフォーム固有のオーディオライブラリが必要な場合は、それが使用するAPIのように見えます。

編集2
私は私の最初の答えで少し速かった...本当に、それはあなたが何をしたいかに依存します。オーディオファイルを再生するだけの場合は、QSoundが最適です。ただし、オンザフライでオーディオをミキシングして生成する場合は、XAudio2(DirectXの一部であり、ビデオゲームの一部としてサウンドを作成することを目的としています)などのより機能的なライブラリを使用する方法があります。行く。

于 2010-10-26T00:03:51.563 に答える
2

本当にあなたがやりたいことに依存します。最も一般的なシナリオでは、MCIWnd関数が適切に機能することがわかりました。これらの関数は非常に使いやすく、コーデックがインストールされている任意の形式で再生できます。

DirectSoundの使用はやや難しいですが、出力をより細かく制御できます。特殊効果を追加し、3Dポジショニングをシミュレートできます。

これらのwaveOut関数は、到達できる最低レベルのAPIであり、一種の両刃の剣です。スピーカーに出力されるものを正確に制御できますが、生の波形データのみを受け入れるため、すべてのデコードを担当します。入力データの後処理。PlaySound本質的にこれの周りの素晴らしいラッパーを提供します。

于 2010-10-26T00:19:08.923 に答える