Pergunta

é DirectSound a melhor camada de abstração de áudio para Windows? Alternando meu aplicativo a partir de uma aplicação de som muito ruim, construído com um chipset específico, a uma camada Abstration.

App é Winform nativa, NET 3.5. DirectX / DirectSound é a opção mais provável, mas um pouco preocupado com a sobrecarga. Quaisquer outras opções? Ou é bobagem até mesmo pensar em outra coisa?

Foi útil?

Solução

DirectSound não está recebendo o mesmo amor da Microsoft hoje como ficou no passado. Tanto quanto DirectX está em causa, você pode tentar XAudio2 ou XACT vez. Algumas pessoas adoram esses, outros odeiam. XAudio2 é mais baixo nível, enquanto XACT é, em vez de alto nível. Ambos são acessíveis a partir do Microsoft XNA, que é como Managed DirectX, mas é desenvolvido ativamente.

Mas você não está restrito a utilizar o DirectX vem com. Tente FMod se você quer algo grande. Eles ainda têm o seu modelo de licença Shareware / Hobbyist e um modelo de licença Freeware, no caso de você não quer pagar algum dinheiro grande.

Sua escolha depende do que exatamente você quer fazer com o som.

Outras dicas

SDL parece melhor.

Bem, você pode tentar OpenAL . O OpenGL é Direct3D é OpenAL para DirectSound (3D). A interface é bastante semelhante ao OpenGL, se você não fizer assim, você provavelmente não gostam OpenAL também. Também não tenho a certeza se a versão do Windows desta lib é um própria implementação, nativa ou apenas chama DirectSound e, portanto, pode ser apenas um invólucro (fina?) Em cima dela.

DirectSound é muito bom.

Se precisar de baixa latência ou um bom suporte para entrada de som e saída através de várias placas de som, ao mesmo tempo, você também pode querer ter um olhar para ASIO:

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

O waveOut ... API ainda é uma opção. É complicado para trabalhar com a partir do código gerenciado, mas você pode jogar vários sons ao mesmo tempo dessa maneira (no XP e no Vista, pelo menos).

Se você só precisa para reproduzir sons, ocasionalmente, System.Media.SoundPlayer é muito fácil de usar. No entanto, você não pode jogar mais do que um som ao mesmo tempo com este componente.

DirectSound é a sua única outra grande alternativa. Tem um built-in software sintetizador, se isso é algo que você precisa.

EDIT: SDL parece interessante. Obrigado, Sijin.

SharpDX parece interessante. Estou pensando em tentar isso como um substituto para Managed DirectX por causa das limitações x86 deste último.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top