Domanda

DirectSound è il miglior livello di astrazione audio per Windows? Passando la mia app da un'implementazione audio pessima, costruita su un chipset specifico, a un livello di astrazione.

L'app è nativa Winform, .net 3.5. DirectX / DirectSound è la scelta più probabile, ma un po 'preoccupata per le spese generali. Altre opzioni? O è sciocco persino PENSARE su qualcos'altro?

È stato utile?

Soluzione

DirectSound non sta ricevendo lo stesso amore da Microsoft oggi come in passato. Per quanto riguarda DirectX, puoi provare invece XAudio2 o XACT. Alcune persone adorano quelle, altre le odiano. XAudio2 è più di basso livello, mentre XACT è piuttosto di alto livello. Entrambi sono accessibili da Microsoft XNA, che è come Managed DirectX, ma è attivamente sviluppato.

Ma non sei limitato all'utilizzo di DirectX. Prova FMod se vuoi qualcosa di eccezionale. Hanno ancora il loro modello di licenza Shareware / Hobbyist e un modello di licenza Freeware, nel caso in cui tu non voglia pagare un sacco di soldi.

La tua scelta dipende da cosa esattamente vuoi fare con il suono.

Altri suggerimenti

Verifica se SDL sembra migliore.

Bene, puoi invece provare OpenAL . Che cos'è OpenGL per Direct3D è OpenAL per DirectSound (3D). L'interfaccia è abbastanza simile a OpenGL, se non ti piace, probabilmente non ti piacerà anche OpenAL. Inoltre, non sono sicuro che la versione Windows di questa lib sia una propria implementazione nativa o che chiami DirectSound e quindi possa essere solo un wrapper (sottile?) Sopra di esso.

DirectSound è abbastanza buono.

Se hai bisogno di una bassa latenza o di un buon supporto per l'ingresso e l'uscita del suono tramite più schede audio allo stesso tempo, potresti anche voler dare un'occhiata a ASIO:

http://de.wikipedia.org/wiki/Audio_Stream_Input/Output

L ' API waveOut ... è ancora un'opzione. È difficile lavorare con il codice gestito, ma puoi riprodurre più suoni contemporaneamente in questo modo (almeno in XP e Vista).

Se hai solo bisogno di riprodurre suoni occasionalmente, System.Media.SoundPlayer è molto facile da usare. Tuttavia, con questo componente non puoi riprodurre più di un suono alla volta.

DirectSound è l'unica altra alternativa importante. Ha un sintetizzatore software integrato, se è qualcosa di cui hai bisogno.

EDIT: SDL sembra interessante. Grazie, Sijin.

SharpDX sembra interessante. Sto pensando di provarlo in sostituzione di Managed DirectX a causa delle limitazioni x86 di quest'ultimo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top