2009-08-18 79 views
12

Tôi đang cố gắng xây dựng một chương trình trong C# cho phép tôi truyền trực tuyến âm thanh và video từ một máy tính, qua mạng, tới một máy tính khác, được kết nối với một loạt video/âm thanh thiết bị (máy chiếu, loa, vv). Lý tưởng nhất, tôi muốn để có thể nắm bắt dữ liệu này trực tiếp từ máy tính "trình bày" mà không cần phải cắm vào bất cứ thứ gì.Ghi Âm thanh Đầu ra Trong C#

Video, phát trực tuyến và hiển thị lại trên máy tính "đầu ra" tất cả đều hoạt động tốt, nhưng dường như tôi không thể tìm ra cách tốt để ghi lại đầu ra âm thanh mà không cần cáp cắm vào tai nghe jack và được kết nối với máy tính khác. Toàn bộ điểm của chương trình này là để cho phép điều này được thực hiện không dây, vì vậy đây là một vấn đề. Tóm lại, tôi đang tìm một số loại giao diện C# cho phép tôi ghi lại đầu ra âm thanh trên máy tính Windows, như thể tôi đã cắm một thứ gì đó vào giắc cắm tai nghe.

Cảm ơn trước vì đã được trợ giúp.

+0

Bạn có thể chỉ cho tôi tham chiếu tốt về phát trực tuyến video không? Tôi quan tâm đến cách bạn thực hiện phát trực tuyến video và điều "chụp" .. –

+1

Tôi đã sử dụng API chụp màn hình C# (http://www.developerfusion.com/code/4630/capture-a-screen-shot/) và nén hình ảnh sang PNG, sau đó chỉ cần gửi dữ liệu thô qua mạng. Ở đầu bên kia, chúng được xây dựng lại và rút ra trong một bức hình toàn màn hình. Dường như nó sẽ là khá chậm nhưng chúng tôi đang sử dụng một mạng được dành riêng cho mục đích này và các máy tính ở hai đầu là khá beefy. –

+0

Đây là liên kết phù hợp, xin lỗi: http://www.geekpedia.com/tutorial181_Capturing-screenshots-using-Csharp.html –

Trả lời

4

Trong Windows, nhà sản xuất card âm thanh có thể chọn cung cấp luồng đầu vào "bạn nghe" để bạn có thể thu được đầu ra. Nếu card âm thanh/trình điều khiển của bạn không có tính năng này, bạn có thể thử sử dụng Virtual Audio Cable để thực hiện điều tương tự.

Trong Windows 7, có một chức năng mới cho phép bạn nghe/nắm bắt bất kỳ luồng đầu vào nào trực tiếp.

+3

Bạn có thể cung cấp một số chi tiết về chức năng của windows 7 không. –

+0

@Keivan, tôi có lẽ đã nghĩ đến WASAPI, cụ thể hơn là [Ghi lại vòng lặp] (http://msdn.microsoft.com/en-us/library/dd316551%28v=vs.85%29.aspx), [Mẫu trong C++] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd370800 (v = vs.85) .aspx). Trong C#, tôi nghĩ [NAudio] (http://naudio.codeplex.com/) cung cấp điều này. –

3

Nếu bạn đã có mặt Video được tìm ra; NAudio là một cách hay để xử lý thành phần Audio.

Giả sử chúng ta phá vỡ nhiệm vụ trong quá trình ghi và sau đó là các thành phần nhận và phát thì những điều sau đây sẽ giúp bạn với mỗi bên;

Các ghi: http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html

Các nhận và chơi: Play audio from a stream using C#

Phương pháp vận chuyển ở giữa là tùy thuộc vào bạn nhưng nếu bạn đã có một cách để gửi một dòng suối giữa hai máy tính, bạn nên có thể sử dụng lại điều đó. Chỉ cần đảm bảo bộ đệm của bạn đủ lớn để luôn có dữ liệu để phát lại trên máy tính nhận.

Các vấn đề liên quan