2011-02-10 56 views
5

Có thể (Tốt nhất là với .NET) để xác định xem video hiện có đang phát không? Ngay cả khi nó bị hạn chế phát lại tăng tốc phần cứng, điều đó sẽ tốt hơn là không có gì.Có thể lập trình xác định xem video có đang phát không?

Điểm thưởng nếu tôi có thể xác định hiển thị nào trong hệ thống đa màn hình đang phát.

+1

bạn đang nói về việc phát hiện nó đang phát trên trang web? hay nói chung? – Jason

+0

Nói chung. Media Player, VLC, vv sử dụng tăng tốc card video nếu có sẵn với các lớp phủ, vv Tôi đang cố gắng bẫy nếu điều đó xảy ra. – Boarder2

+0

Câu hỏi tương tự với một số giải pháp có thể có: http://stackoverflow.com/questions/11177373/how-to-detect-if-any-video-is-being-played-now – TheLegendaryCopyCoder

Trả lời

0

Tôi không nghĩ rằng nó có thể thực hiện được trên toàn cầu vì video có thể được phát qua DirectX, OpenGL hoặc thậm chí GDI. Tôi nghĩ rằng lựa chọn tốt nhất của bạn là có một danh sách trắng các ứng dụng được sử dụng để phát lại và thăm dò ý kiến ​​về các tiến trình đang chạy. Khi bạn có quy trình, bạn có thể thử và tìm các cửa sổ/điều khiển và có thể thử lấy HDC và sử dụng API thích hợp (DirectShow có thể nhất) để truy vấn hoặc thao tác thiết bị.

Khi bạn có cửa sổ, hãy gọi tới System.Windows.Forms.Screen sẽ cho bạn biết màn hình nào đang hiển thị các tọa độ này.

3

Điều tra DirectShowSpy từ alax.info. Điều này sẽ cho phép bạn "gián điệp" khi chạy đồ thị DirectShow. Rất hữu ích kết hợp với một công cụ như GraphStudio.

Tôi là nhà phát triển C++ viết ứng dụng DirectShow và sử dụng cả hai công cụ mọi lúc, họ là những công cụ gỡ lỗi không thể thiếu.

Google đối tượng của Bảng đối tượng đang chạy. Các biểu đồ DirectShow (thường) được thêm vào Bảng đối tượng đang chạy, vì vậy bạn có thể liệt kê ROT để xác định đồ thị nào đang chạy trên hệ thống.

Thẻ video của bạn sẽ sử dụng bộ lọc trình kết xuất DirectShow để phát lại video trong biểu đồ Directshow. Trình kết xuất thường được bộ lọc bộ giải mã cấp. Bộ lọc bộ giải mã thực hiện công việc giải mã video và đó là bộ giải mã phải được hướng dẫn sử dụng gia tốc DXVA.

Vì vậy, ví dụ: bạn có thể có bộ lọc bộ giải mã H.264 trong biểu đồ phát lại, bạn phải hướng dẫn nó sử dụng gia tốc DXVA. Đó là kinh nghiệm của tôi rằng bộ lọc bộ giải mã sẽ có tùy chọn cho phép bạn bật/tắt giải mã video DXVA tăng tốc, nhưng điều này sẽ cụ thể cho bộ giải mã được đề cập và do đó sẽ khó hơn nhiều để phát hiện phổ biến. Ví dụ, bạn có thể viết mã để phát hiện DXVA có được kích hoạt hay không bằng cách truy vấn bộ lọc bộ giải mã trong biểu đồ đang chạy giải mã luồng H.264, nhưng mã để truy vấn bộ lọc bộ giải mã cho đồ thị VP8 nhiều khả năng mã khác.

This MSDN link hỗ trợ trải nghiệm của tôi rằng tăng tốc DXVA được chuyển qua bộ lọc bộ giải mã; có thể có một số cách để truy vấn một card đồ họa, nhưng tôi nghĩ rằng đây sẽ là nhà cung cấp thẻ gfx cụ thể.

Xin lỗi câu trả lời không cụ thể hơn, nhưng tôi hy vọng nó sẽ chỉ cho bạn đúng hướng ...

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