2009-08-18 17 views
12

Próbuję zbudować program w C#, który pozwoli mi przesyłać strumieniowo audio i wideo z jednego komputera, przez sieć, do innego komputera, który jest podłączony do garść wideo/audio sprzęt (projektor, głośniki itp.). Idealnie, chciałbym móc przechwycić te dane bezpośrednio z komputera "prezentera" bez konieczności podłączania do niczego.Przechwytywanie dźwięku Wyjście w C#

Wideo, przesyłanie strumieniowe i ponowne wyświetlanie na "wyjściu" komputera działa dobrze, ale nie mogę znaleźć dobrego sposobu na przechwytywanie dźwięku bez konieczności podłączania kabla do słuchawek podnośnik i podłączony do drugiego komputera. Celem tego programu jest umożliwienie tego w sposób bezprzewodowy, więc jest to problem. Podsumowując, szukam jakiegoś interfejsu C#, który pozwoli mi przechwytywać dźwięk na komputerze z systemem Windows, tak jakbym podłączył coś do gniazda słuchawkowego.

Z góry dziękuję za pomoc.

+0

Czy możesz wskazać mi dobre referencje dotyczące przesyłania strumieniowego wideo? Ciekawi mnie, w jaki sposób wykonałeś transmisję wideo i "przechwytywanie" ... –

+1

Użyłem interfejsu API do zrzutów ekranu C# (http://www.developerfusion.com/code/4630/capture-a-screen-shot/) i skompresował obrazy do formatu PNG, a następnie po prostu przesłał nieprzetworzone dane przez sieć. Z drugiej strony są one rekonstruowane i rysowane w pełnym ekranie graficznym. Wygląda na to, że byłoby to dość powolne, ale używamy sieci poświęconej wyłącznie temu celowi, a komputery na obu końcach są dość rozbudowane. –

+0

To jest właściwy link, przepraszam: http://www.geekpedia.com/tutorial181_Capturing-screenshots-using-Csharp.html –

Odpowiedz

4

W systemie Windows producenci kart dźwiękowych mogli wybrać strumień wejściowy "co słychać", aby można było przechwycić dane wyjściowe. Jeśli twoja karta dźwiękowa/sterownik nie ma tej funkcji, możesz spróbować użyć tego samego urządzenia, co Virtual Audio Cable.

W systemie Windows 7 dostępna jest nowa funkcja umożliwiająca bezpośrednie odsłuchiwanie/przechwytywanie dowolnego strumienia wejściowego.

+3

Czy możesz podać kilka szczegółów na temat funkcji systemu Windows 7. –

+0

@Keivan, prawdopodobnie myślałem o WASAPI, a dokładniej o [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). W C# uważam, że zapewnia to [NAudio] (http://naudio.codeplex.com/). –

3

Jeśli masz już stronę Video zorientowaną; NAudio to dobry sposób na obsługę komponentu Audio.

Zakładając, że przerwiemy zadanie na nagranie, a następnie na komponenty odbierające i odtwarzające, następujące elementy powinny pomóc w znalezieniu każdej strony;

Nagranie: http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html

odbiorcze i gry: Play audio from a stream using C#

Sposób transportu pomiędzy nimi zależy od ciebie, ale jeśli już mają sposób wysyłania strumienia pomiędzy dwoma komputerami zalecana być w stanie wykorzystać to ponownie. Wystarczy się upewnić, że bufor jest wystarczająco duży, aby zawsze można było odtwarzać dane na komputerze odbierającym.

Powiązane problemy