2016-09-07 2 views
0

J'utilise le filtre "Push Source Desktop" pour capturer l'écran dans mon application. Je cache mon application pendant l'enregistrement. Seul un bouton permettant d'arrêter l'enregistrement est visible à l'écran. Le bouton est également enregistré par le filtre. Pendant la lecture de l'enregistrement enregistré, le bouton est visible avec le reste de la région de l'écran.Comment puis-je omettre la capture d'un bouton/d'une région à l'aide des API DirectShow?

Est-il possible d'empêcher l'enregistrement du bouton?

Mon but est d'enregistrer l'écran sans le bouton. Je ne peux pas cacher le bouton car il faut pour arrêter l'enregistrement de mon application. J'ai essayé de modifier la composante alpha de mon bouton et de le rendre semi-transparent. Mais encore le filtre capture le bouton semi-transparent.

Comment puis-je obtenir la région d'arrière-plan du bouton et ignorer la capture du bouton lui-même?

Répondre

0

Le problème n'a en fait rien à voir avec DirectShow. Longue histoire courte, DirectShow démarre lorsque vous envoyez l'image que vous avez déjà en utilisant l'API DirectShow et le facteur de forme de votre élément logiciel.

Votre question est comment afficher quelque chose sur le bureau et saisir à partir du même bureau en excluant la partie que vous présentez à l'utilisateur. Je ne pense pas que vous puissiez l'implémenter avec précision sans entrer dans trop de détails, mais assez souvent, vous pouvez faire un truc comme celui-ci: vous connaissez la position de votre élément d'interface utilisateur pour identifier ce qui se trouve en dessous commande (une autre fenêtre d'application ou un bureau, etc.). Vous pouvez demander à cette fenêtre de repeindre dans votre contrôleur de domaine, puis combiner les parties dans la vidéo que vous envoyez en aval en tant que source DirectShow.