Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# [pas résolu, mais contourné] nsIProcess: arreter le processus

Envoyé par : mat

Date : 17/07/2006 12:03

Bonjour,

je suis en train de développer une application sous forme d'extension (FF 1.5.0.4), et j'ai besoin d'utiliser VLC pour pouvoir visionner un flux directshow, et l'enregistrer simultanément. J'ai suivi la page du wiki pour lancer une appli externe , et il se lance parfaitement, avec tous les bons arguments qui vont bien...
Par contre, il m'est impossible de fermer VLC par appui sur un bouton de mon interface: l'utilisation de nsIProcess::kill() reste obscure (je n'en ai pas trouvé de documentation) et son implémentation dans le code source ne produit rien, pas meme un message d'erreur dans la console ou dans le débugger javascript! Voici mon code source allégé:

 function init_vlc()
 {
 	//Création d'un objet nsILocalFile pour le vlc "serveur"
 	var file1 = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
 	file1.initWithPath( 'C:\\Program Files\\VideoLAN\\VLC\\vlc.exe' ); quelqu'un connaitrait une possibilité de ne pas devoir échapper de caractères, ici?
 	process1.init(file1);
 	//préparation des paramètres de vlc
 	var args1 = ':sout=#transcode{vcodec=mp2v,vb=2048,scale=1,acodec=mp2a,ab=128,channels=2}:duplicate{dst=std{access=file,mux=ps,dst="Z:\sortie1.mpg"}}';
 	var cible1 = 'Z:\\test.mpg '
 	var args1 = cible1 + args1;
 	var arg1 = args1.split(' ');
 	//lancement de l'application externe
 	process1.run(false, arg1, 2);
 }
 function deinit_vlc ()
 {
 	println("deinit pressed"); s'affiche dans la console
 	process1.kill();
 	process2.kill();
 	println("deinit finished"); s'affiche dans la console
 }

Je précise que mon extension utilise l'URL chrome, et je ne pense donc pas qu'il y ait de problèmes de permission. Par contre, je me répète, mais ce qui est le plus surprenat est l'absence meme de message d'erreur!

Merci de vos réponses

Mat

# Re: nsIProcess: arreter le processus

Envoyé par : Paul Rouget

Date : 20/07/2006 12:53

Je ne sais pas répondre à ta question, mais juste une petite remarque à propos de VLC, pourquoi ne pas utiliser le plugin ?

# Re: nsIProcess: arreter le processus

Envoyé par : mat

Date : 20/07/2006 13:11

Merci pour cette réponse,

pourquoi ne pas utiliser le plugin ?

C'est un peu complexe... En fait, je capture un flux externe via des filtres directshow, et je dois simultanément le regarder et l'enregistrer sur le disque, pour traitement ulterieur. A ma connaissance, le plugin ne fait que la lecture... Techniquement, je lance un VLC complet externe, et je récupère le flux (apres copie sur le disque) par le plugin...

Suis-je clair?

Pour ce qui est de mon problème, je n'ai pas la solution générale, mais pour ce cas particulier, il suffit de rajouter "vlc:quit" en bout de playlist: à sa lecture... vlc quitte!

PS: si le plugin accepte des contrôles suffisamment avancés, je suis preneur... mais il ne me semble pas!

# Re: nsIProcess: arreter le processus

Envoyé par : Paul Rouget

Date : 20/07/2006 18:05

... et bien justement, je bosse sur l'ajout de fonctionnalités plus poussées dans le plugin VLC.

Jetes un coup d'oeil à ça: http://blog.sexylizard.org/?2006/06/06/7(..)

ça t'intéressera peut être.

Sinon, si tu as les compétences, tu peux te lancer dans le code du plugin, ce n'est pas la mort.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.