2009-01-14 19 views
2

Je travaille sur un mediaplayer distribué qui utilise le composant Windows Media Player. Maintenant, le client me demande s'il est possible d'avoir son logo superposé sur le média plutôt que d'avoir à rendre chaque film avec le logo. Je l'ai google et il me semble que je peux utiliser un filtre DirectShow pour le faire, mais je n'ai pas trouvé de bonnes informations sur la façon de le faire pour le moment.Comment superposer ou filigraner une image dans Windows Media Player

Si quelqu'un ici sait Si je peux le faire par programme, avec un plugin, un filtre ou un autre moyen, il serait bon de savoir. C'est bien si c'est un plugin qui coûte aussi de l'argent.

Ce que je veux est d'être en mesure d'utiliser un jpg/png en filigrane/superposition du film en cours d'exécution dans Windows Media Player 11

Répondre

2

Il est possible de le faire en forçant votre propre filtre DirectShow personnalisé dans le filtre de WMP graphique. Cela implique que la valeur merit du filtre soit très élevée pour que la construction automatique de graphes de DirectShow insère votre filtre dans la chaîne WMP. Cependant, je ne recommanderais pas cette approche car a) il est possible que le filtre ne soit pas toujours inséré avec certaines chaînes de graphe de filtre et b) il sera également ajouté aux graphiques de filtre de toute autre application DirectShow tierce installée. Ce deuxième problème est susceptible d'être un problème majeur. Il devrait être possible de créer un WMP DSP plugin pour cela. Ceux-ci sont implémentés en tant qu'objets DirectX Media (DMO s), qui sont similaires, mais plus simples, que les filtres DirectShow. Cette approche pourrait bien être votre meilleur pari.

Une dernière approche consisterait à réécrire la partie de lecture multimédia complète de votre application dans DirectShow au lieu d'utiliser le contrôle WMP. Cela demanderait beaucoup plus d'efforts, mais si vous envisagez de faire beaucoup de traitement de flux média personnalisé maintenant ou à l'avenir, cela pourrait être une bonne option à prendre.