2010-05-17 16 views
5

Tôi muốn xác định xem chương trình khác có phát âm thanh trên ngưỡng nhất định hay không. Tôi không tìm kiếm kiểm tra cài đặt âm lượng trên máy tính hoặc bất kỳ thứ gì tương tự. Tôi thực sự chỉ cần xem liệu có ứng dụng nào phát cao hơn những gì tôi mong đợi hay không. Bất cứ ai biết nếu điều này là có thể hoặc làm thế nào để làm điều đó?Xác định khi nào một âm thanh lớn được phát trong C#

+2

Phản hồi ngay lập tức của tôi là không có cách nào "ngoài tầm" bằng cách thực hiện điều đó với .Net. Có thể cần truy cập cấp thấp hơn cho phần cứng âm thanh. Thậm chí sau đó, tôi không nghĩ rằng bạn có thể nhận được khối lượng vật lý thực tế chơi bởi vì điều này có thể được kiểm soát bên ngoài từ máy tính (sử dụng núm volumne). :) – Anthony

+0

Tôi nghĩ rằng một chương trình thực hiện điều đó sẽ phải đào sâu khá sâu vào cơ sở hạ tầng hệ thống, giống như, gần với trình điều khiển card âm thanh. Có thể DirectX cho phép bạn đến đó ... – flq

Trả lời

1

Khám phá dự án this trên dự án mã. Đó là một đồng hồ đo khối lượng bằng cách sử dụng DirectX được quản lý và được viết hoàn toàn bằng C#.

1

Có nhiều nguồn âm thanh có thể có trên máy cục bộ và cuối cùng chúng sẽ giao tiếp thông qua Hệ thống âm thanh Windows xuống máy trộn và qua thẻ âm thanh. Cách duy nhất mà tôi biết để theo dõi tất cả các âm thanh trên hệ thống Windows là viết Trình điều khiển Bộ lọc bằng Bộ phát triển Trình điều khiển Thiết bị. Điều này sẽ chặn tất cả các yêu cầu đến hệ thống âm thanh, đi qua các dữ liệu đang được gửi để chơi và có thể đặt cờ/ghi vào nhật ký khi nó phát hiện sự khác biệt lớn (nơi abs (dữ liệu [x + 1] - dữ liệu [x]) là một giá trị lớn).

Phát triển trình điều khiển thường được thực hiện trong C. Có một loạt mã mẫu trên mạng nếu bạn muốn đi tuyến đường này.

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