-
Flux audio WMP
Salut,
voila j'aimerais effectuer un transfert d'un flux audio en temps réels d'une machine a une autre : en fait il s'agit de lire une vidéo sur mon portable de passer le son sur mon pc de bureau pour pouvoir l'entendre sur ma chaine (je ssais pas si vous voyez).
Sachant que la vidéo est lu sur WMP est ce que quelqu'un aurait une idée (si on peut eviter de se limiter à WMP ca serait parfait !) ?
merci bcp
-
Bonjour,
ton explication est un peu floue. Tu veux faire passer l'audio ou la vidéo? Les deux peut-être?
Sinon, je sais qu'il est possible, avec directX 9, de récupérer le contenu du "primary buffer", c'est à dire à la dernière étape avant qu'il n'arrive au filtre NTA. On pourrait imaginer un prog qui récupère ça et qui le balance sur le réseau. Mais tel quel, en wave, ça risque de faire péter la bande passante. A voir. Et puis ensuite, sur ton pc, il faut faire une autre appli qui récupère ça et qui le balance sur la carte son. C'est pas évident à faire, mais c'est faisable.
-
c'est juste le son dont j'ai besoin (c'est pour eviter de débrancher le fil du fixe vers la chaine pour le mettre sur le protable car à la longue c'est casse pied :)
tu suggeres donc de compresser le flux audio ?
-
Bah, je ne sais pas trop quel est le mieux.
Déjà, si tu as un peu de temps, je te conseillerais de regarder un truc: tu créé un nouveau projet visual et tu lui inclu l'activeX wmp9. Ensuite, regarde parmi les fichiers générés par visual, tu va avoir un wrapper qui va te dire toutes les fonctionnalités que wmp te fournis. Peut-être trouveras-tu là-dedans de quoi faire ton bonheur (avec l'aide de la msdn, il y a une sdk pour wmp9).
Mais bon, à première vue, ce ne sera pas facile, car il va te falloir gérer l'audio + le réseau, ce qui signifie des threads, des sockets, etc.
-
oki je regarderais ca ce soir et je te donnerais des nouvelles
-
je capte rien pour le sdk de WMP
-
j'ai l'impression que dans le SDK ya pas d'interface pouyr bidouiller ca :)
donc si quelqu'un a une idée
-
En effet, j'ai regardé un peu cette sdk et je ne vois pas comment on pourrait récupérer le flux audio.
Je ne vois pas d'autres solution que de récupérer ce flux au niveau de windows. Et je ne sais pas faire cela autrement qu'avec directX, mais là, ça devient compliqué, car directX c'est tout de même un sacré b***l >_< ultra puissant, mais c'est une énorme usine à gaz.
Cependant, si tu es motivé par l'aventure, alors munis-toi de gousses d'ail, de poupées vaudou et autres reliques sacrées, et commence par télécharger la sdk de directX9 sur le site de micro$oft. Après, le forum directX sera ton ami. Et puis après, le forum développement réseau te sera d'une aide non négligeable, sans oublier que si tu ne maitrise pas bien la gestion de thread et leur synchro, et bien c'est une bonne occasion pour s'y mettre ;)
-
Les threads et le reseaux ca va par contre directX c'est un autre paire de manche. Heuresement que j'ai un livre :D
-
ok, et bien tu devrais pouvoir t'en sortir alors. Car en fait, tu n'aura pas besoin de grand chose de directX, donc ça devrait aller.
Ce que je te conseille, c'est de télécharger la sdk et de regarder un tutoriel qui utilise le primary buffer (objet DXPrimaryBuffer ou quelque chose comme ça) car c'est lui que tu va devoir récupérer et rediriger. Ca ne devrait pas être trop compliqué de le balancer sur le réseau.
Ensuite, pour le récupérer sur une autre machine, c'est, je pense, plus délicat. Mais pour cela, j'ai un bout de code qui devrait pouvoir t'aider. Il consiste à envoyer un buffer au périphérique audio.
Excuses-moi si je reste très vague, mais je n'ai pas touché à directSound depuis pas mal de temps, et mes souvenirs ne sont plus très précis :aie:
-
c quoi ton bout de code ? :D
-
Erf, je n'ai pas le code sous la main, il est chez moi... et je suis loin de chez moi en ce moment. Il s'agit d'un synthétiseur/séquenceur sur lequel je travaille depuis que j'ai compilé mon premier code C, il doit bien y avoir 10 ans :roll:
Mais il est inspiré de ce code
Attention, ceci ne sera utile uniquement pour le client (l'appli qui va recevoir le flux).
-
pour la deuxième partie il s'agit bien d'ecrire dans le primary buffer
-
-
Comment je peux faire pour intercepter le primary buffer ?
-
Je ne sais pas, je ne l'ai jamais fait. Tu devrais poser cette question sur le forum directX ;)
-
oki
merci :)
ps : euh je marque le post en résolu ou po ?
-
-
Oui, cela indique que tu ne cherches plus de réponse à ta question. :D