2009-08-18 76 views
12

Estoy intentando crear un programa en C# que me permita transmitir audio y video desde una computadora, a través de la red, a otra computadora, que está conectada a un montón de video/audio equipo (proyector, altavoces, etc.). Idealmente, me gustaría poder capturar estos datos directamente desde la computadora "presentadora" sin tener que conectar nada.Capturar salida de sonido en C#

El video, la transmisión y la visualización en la computadora de "salida" funciona bien, pero parece que no puedo encontrar una buena forma de capturar la salida de audio sin necesidad de conectar un cable a los auriculares Jack y conectado a la otra computadora. El objetivo de este programa es permitir que esto se haga de forma inalámbrica, por lo que este es un problema. En resumen, estoy buscando algún tipo de interfaz C# que me permita capturar la salida de sonido en una máquina de Windows, como si hubiera enchufado algo en la toma de auriculares.

Gracias de antemano por cualquier ayuda.

+0

¿Me puede indicar una buena referencia sobre la transmisión de video? Me interesa cómo hiciste la transmisión de video y la función "capturar" ... –

+1

Utilicé la API de captura de pantalla C# (http://www.developerfusion.com/code/4630/capture-a-screen-shot/) y comprimió las imágenes a PNG, luego simplemente envió los datos brutos a través de la red. En el otro extremo, se reconstruyen y dibujan en una caja de imágenes en pantalla completa. Parece que sería bastante lento, pero estamos utilizando una red dedicada exclusivamente a este fin y las computadoras en ambos extremos son bastante robustas. –

+0

Este es el enlace correcto, lo siento: http://www.geekpedia.com/tutorial181_Capturing-screenshots-using-Csharp.html –

Respuesta

4

En Windows, los fabricantes de la tarjeta de audio pueden optar por proporcionar un flujo de entrada "lo que oyes" para poder capturar la salida. Si su tarjeta de sonido/controlador no tiene esta característica, puede intentar usar el Virtual Audio Cable para realizar lo mismo.

En Windows 7, hay una nueva funcionalidad que le permite escuchar/capturar cualquier flujo de entrada directamente.

+3

Puede proporcionar algunos detalles sobre la funcionalidad de Windows 7. –

+0

@ Keen, probablemente estaba pensando en WASAPI, más específicamente [Loopback Recording] (http://msdn.microsoft.com/en-us/library/dd316551%28v=vs.85%29.aspx), [Sample in C++] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd370800 (v = vs.85) .aspx). En C#, creo que [NAudio] (http://naudio.codeplex.com/) proporciona esto. –

3

Si ya tiene el lado de Video resuelto; NAudio es una buena forma de manejar el componente de audio.

Suponiendo que dividimos la tarea en la grabación y luego en los componentes de recepción y reproducción, lo siguiente debería ayudarlo con cada lado;

La grabación: http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html

La recepción y de juego: Play audio from a stream using C#

El método de transporte en el medio es de usted, pero si usted ya tiene una forma de enviar una corriente entre dos equipos que debiera ser capaz de reutilizar eso. Solo asegúrate de que tu memoria intermedia sea lo suficientemente grande como para que siempre haya datos para reproducir en la computadora receptora.

Cuestiones relacionadas