Pergunta

Eu estou fazendo uma aplicação onde eu vou:

  • Gravar a partir do microfone e fazer algum processamento em tempo real na entrada
  • Reproduzir um arquivo MP3 (uma canção regular), mas manipular a saída em tempo real
  • De vez em quando eu vou ter de reproduzir sons adicionais sobre esta música também, mas eu acho que posso fazer isso simplesmente adicionando os buffers.

Em suma, eu preciso ter buffers circulares, tanto para gravação e reprodução, e eu preciso estar "alimentando" buffer a saída a cada 20 ms ou menos com os novos dados que está prestes a ser jogado.

Eu estive olhando DirectSound, e isso não parece ajudar muito. A leitura e escrita para os buffers de saída parece muito semelhante ao Win32, o único lugar onde parece que iria ajudar é em jogar os "sons adicionais" sobre a música principal.

Devo usar DirectSound, ou devo ir direto à matéria do Windows APIs?
DirectSound vai fazer nada por mim?

Obrigado antecipadamente!

Foi útil?

Solução

O DirectSound API de dar-lhe um melhor controle em tempo real. Eles também são a maneira suporte para usar som no Windows. Fiquei com a impressão de que o Win32 API foram depracated, mas posso estar errado sobre isso.

Esta questão está perto de seu

https://stackoverflow.com/questions/314522 / o que-é-o-melhor-c-som-api-para-janelas

também

DirectSound é a melhor camada de abstração de áudio para Windows

Por último, mas não menos importante, isso é o que a Microsoft tem a dizer http://msdn.microsoft.com/en-us/library/dd370784 (VS.85) .aspx

Outras dicas

Nem? :)

A história é que DirectSound é a substituição para waveOut, mas DirectSound juntou DirectInput como APIs Reprovados no Vista e é substituído por WASAPI . DirectSound e waveOut são implementadas no topo do WASAPI espaço do usuário no Vista. No XP, waveOut e DirectSound feed para o mesmo nível do kernel Mixer API.

Para consolidar todas estas interfaces de dar uma olhada em algo como OpenAL, é um padrão de áudio bem suportado ao longo das mesmas linhas como OpenGL.

Parece que você está indo para ser bastante sensíveis à latência. Pode pagar a olhar para ASIO

Harmony Central - Áudio programação. Leia também w:. DirectSound

Windows Vista apresenta uma completamente re-escrita pilha de áudio baseado no Universal Audio Architecture. Porque das mudanças arquitetônicas no pilha de áudio redesenhada, um caminho direto de DirectSound para os drivers de áudio não existe.

Por causa do Xbox 360 e Microsoft a integração do Windows, a Microsoft é empurrando ativamente desenvolvedores a migrar novas aplicações para Xbox equivalente APIs de áudio, como XAudio e XACT.

OpenAL parece promissor.

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