Pergunta

Eu quero amostra continuamente a partir de linha de áudio do meu PC no uso de C # (então processar os dados). Qual é a melhor maneira de fazer a amostragem?

Foi útil?

Solução

Você pode fazer alguma captura de áudio (básico) usando o código aberto NAudio .NET biblioteca de áudio. Ter um olhar para o projeto NAudioDemo ver um exemplo simples de gravação para um arquivo WAV usando as funções WaveIn. NAudio agora também inclui a capacidade de captura de áudio usando WASAPI (Windows Vista ou superior) e ASIO (se sua placa de som tem um driver ASIO).

Outras dicas

Há biblioteca Alvas Áudio bem, não é livre, tem uma irritante tela se você não pagar, mas funciona muito bem. Ea documentação é agradável e, se você encontrar um bug ou algo assim, o apoio é muito fina.

Não existe são built-in bibliotecas do framework .NET para lidar com o som, mas se você estiver em Win32, você pode usar uma biblioteca não gerenciada como DirectSound para fazê-lo.

mostra Ianier Munoz como escrever um leitor de áudio full-duplex em C # usando WaveIn via P / Invoke em CodeProject. Ele menciona Managed DirectSound como um mais método geral.

Dirigido DirectX suporta captura direta de áudio e é muito fácil de usar, mas não é mais suportado e foi removido do DirectX SDK ano passado. Ainda é possível get it , instalando uma versão SDK de antes Agosto de 2007.

Embora não seja estritamente atender suas necessidades, uma abordagem mais robusta seria a criação de um C ++ / CLI wrapper do assembly ao redor do nativo API C ++ DirectSound, novamente a partir do DirectX SDK. Este poderia então ser chamado diretamente do código C #. Esta é definitivamente uma abordagem mais poderoso e fácil de manter, apesar de exigir algum conhecimento de C ++ e COM.

Eu usei ambas as técnicas no passado e ambos trabalham bem.

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