Accueil > Forum > > > > Lire élément X dans une playlist VLC
Lire élément X dans une playlist VLC
mardi 23 février 2010 à 11:24:27 |
Lire élément X dans une playlist VLC

thejrem
|
Bonjour
J’ai un projet de création de télécommande wifi pour VLC sur Windows mobile et je bloque sur la partie de sélection de chaine.
Alors j’ai une playlist et j’aimerai lire l’élément X de la playlist en évitant de faire X fois programme plus.j'ai trouver via la console de l'interface telnet de VLC la commande goto X mais je n'arrive pas a l'exploité dans mon programme
[code]
WinExec("C:\\Progra~1\\VideoLAN\\VLC\\vlc.exe C:\\playlist.m3u --extraintf rc --telnet-port 6666 --telnet-password admin",1); //lance ma playlist avec vlc, mon interface console et le serveur telnet
[/code]
avez vous une idée comment exploiter la fenetre console de VLC pour lancé des goto X
|
|
dimanche 28 février 2010 à 12:02:37 |
Re : Lire élément X dans une playlist VLC

rt15
|
Bienvenue,
(Je précise que je n'ai jamais codé pour windows mobile, le code ci-dessous est pour PC, mais bon, il devrait aller aussi).
WinExec est obsolète. Utiliser CreateProcess à la place.
Concernant ton problème, il est relativement classique.
Voilà un début de piste. Ce programme lance :
cmd /C set /P a= && echo %a%
Ce qui demande à l'utilisateur de donner une valeur pour a, puis affiche la valeur donnée. Mais ce n'est pas l'utilisateur qui va donner a, mais notre programme.
Tout se fait à l'aide de " pipes". Ils permettent d'envoyer des caractères à une console et de lire les valeurs retournées.
Application console. Pour compiler sous gcc, ajouter -nostartfiles -nodefaultlibs -nostdlib -ffreestanding dans les options du lieur.
Pour compiler sous VC, s'arranger pour que le lieur ignore toutes les librairies par défaut (/nodefaultlib).
Sous VC, en cas d'erreur LNK2001 : __chkesp symbole externe non résolu -> Enlever /GZ des options de compilation
Code C/C++ : #define UNICODE
#include <windows.h>
#ifdef UNICODE
#define _T(x) L ## x
typedef unsigned short TCHAR;
#else
#define _T(x) x
typedef char TCHAR;
#endif
DWORD __stdcall Err_ShowLast(TCHAR* lpTitle)
{
DWORD nLastError;
LPTSTR lpMessageBuffer;
nLastError = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL, nLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(void*)&lpMessageBuffer, 0, NULL);
MessageBox(NULL, lpMessageBuffer, lpTitle, MB_OK | MB_ICONERROR);
LocalFree(lpMessageBuffer);
return nLastError;
}
void* __stdcall Mem_Set(void* lpArea, BYTE nValue, DWORD nSize)
{
BYTE* lpByteArea;
DWORD nI;
lpByteArea = (BYTE*)lpArea;
for (nI = 0; nI < nSize; nI++)
lpByteArea[nI] = nValue;
return lpArea;
}
DWORD __stdcall ReadPipe(HANDLE hPipe)
{
HANDLE hOutput;
char lpBuffer[512];
DWORD nBytesRead;
DWORD nBytesWritten;
hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
while (ReadFile(hPipe, lpBuffer, 512, &nBytesRead, NULL) && nBytesRead)
WriteFile(hOutput, lpBuffer, nBytesRead, &nBytesWritten, NULL);
return 0;
}
int __cdecl mainCRTStartup()
{
SECURITY_ATTRIBUTES securityAttribs;
HANDLE hPipeInputRead;
HANDLE hPipeInputWrite;
HANDLE hPipeOutputRead;
HANDLE hPipeOutputWrite;
STARTUPINFO startupInfo;
PROCESS_INFORMATION processInfo;
TCHAR lpCommandLine[512]; /* Le paramètre lpCommandLine de CreateProcessW ne doit pas être read-only */
HANDLE hReadPipe;
DWORD nBytesWritten;
DWORD nResult;
nResult = 1;
/* Création des pipes de lecture et d'écriture */
securityAttribs.nLength = sizeof(securityAttribs);
securityAttribs.lpSecurityDescriptor = NULL;
securityAttribs.bInheritHandle = TRUE;
if (! CreatePipe(&hPipeInputRead, &hPipeInputWrite, &securityAttribs, 0))
{
Err_ShowLast(_T("Cannot create input pipe"));
goto the_end;
}
if (! CreatePipe(&hPipeOutputRead, &hPipeOutputWrite, &securityAttribs, 0))
{
Err_ShowLast(_T("Cannot create output pipe"));
goto close_input_pipe;
}
/* Préparation des infos de lancement du processus avec pipe et affichage de la fenêtre */
Mem_Set(&startupInfo, 0, sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
startupInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
startupInfo.wShowWindow = SW_SHOW;
startupInfo.hStdInput = hPipeInputRead;
startupInfo.hStdOutput = hPipeOutputWrite;
startupInfo.hStdError = hPipeOutputWrite;
/* Lancement du processus */
lstrcpy(lpCommandLine, _T("cmd /C set /P a= && echo %a%"));
if (! CreateProcess(NULL, lpCommandLine, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &startupInfo, &processInfo))
{
Err_ShowLast(_T("Cannot create process"));
goto close_output_pipe;
}
/* Lancement du thread de lecture du pipe */
hReadPipe = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&ReadPipe, hPipeOutputRead, 0, NULL);
if (! hReadPipe)
{
Err_ShowLast(_T("Cannot create thread"));
goto close_process;
}
/* Envoie d'une valeure pour a */
WriteFile(hPipeInputWrite, "toto\n", 5, &nBytesWritten, NULL);
WaitForSingleObject(processInfo.hProcess, INFINITE);
nResult = 0;
CloseHandle(hReadPipe);
close_process:
CloseHandle(processInfo.hThread);
CloseHandle(processInfo.hProcess);
close_output_pipe:
CloseHandle(hPipeInputRead);
CloseHandle(hPipeInputWrite);
close_input_pipe:
CloseHandle(hPipeOutputWrite);
CloseHandle(hPipeOutputRead);
the_end:
ExitProcess(nResult);
return 0;
}
|
|
dimanche 28 février 2010 à 12:09:25 |
Re : Lire élément X dans une playlist VLC
|
dimanche 28 février 2010 à 12:24:41 |
Re : Lire élément X dans une playlist VLC

rt15
|
Marche aussi avec ftp ->
Code C/C++ : lstrcpy(lpCommandLine, _T("ftp"));
...
WriteFile(hPipeInputWrite, "help\nquit\n", 10, &nBytesWritten, NULL);
Y a vraiment un souci avec telnet. 
|
|
dimanche 28 février 2010 à 12:40:57 |
Re : Lire élément X dans une playlist VLC

rt15
|
Bon bin je n'ai pas trouvé le problème...
Par contre, autre approche, faire directement le client telnet adapté à VLC. Un peu comme ça.
|
|
mardi 16 mars 2010 à 14:13:49 |
Re : Lire élément X dans une playlist VLC

thejrem
|
merci pour ces reponses, le client telnet de vlc est galere et ne me permet de faire goto X
mais je suis sur ton code et le compilateur de visual studio me met deux erreurs (void*)&lpMessageBuffer et j'ai mis en commentaire la ligne //typedef unsigned short TCHAR; puis la j'ai l'erreur de lnk 1120 et lnk 2001 peut tu m'expliquer comment mettre l'option /GZ dans le compilateur de visual sutudio
merci
|
|
mardi 16 mars 2010 à 14:26:31 |
Re : Lire élément X dans une playlist VLC
|
mercredi 17 mars 2010 à 12:14:33 |
Re : Lire élément X dans une playlist VLC

thejrem
|
j'ai toujours une erreur il me dit
Erreur 3 Ligne de commande error D8016 : options de ligne de commande '/O2' et '/GZ' non compatibles
et /o2 est grisé on ne peut le modifer !
a tu une solution ?
|
|
mercredi 17 mars 2010 à 16:04:57 |
Re : Lire élément X dans une playlist VLC
|
mercredi 17 mars 2010 à 16:14:40 |
Re : Lire élément X dans une playlist VLC
|
Cette discussion est classée dans : élément, lire, telnet, playlist, vlc
Répondre à ce message
Sujets en rapport avec ce message
Accéder aux données d'une carte flash [ par Yoy ]
Je souhaite pouvoir lire les données d'une carte flash insérée dans un connecteur PCMCIA d'un portable.La carte flash contient des données qui ne sont
Pointeur qui fait planter Windows !!! [ par coyito ]
Salutquand je défini moi même une addresse pour un pointeur (exemple pour lire n'importe ou dans la mémoire) j'ai une erreur windows "access violation
Les Menus [ par Watermelon ]
Comment griser un élément d'un menu sur VC++?J'ai bien essayé avec EnableMenuItem de la class CMenu, mais rien ne se passe (pourtant je pointe sur le
Debutant : ecrire et lire un fichier txt [ par manu ]
Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl
Lire dans la base de registre en C++ [ par chris ]
BonjourJe recherche un petit programme C++ qui me permette de lire dans la base de registre.Merci pour votre aide.
Problème pour lire les fichiers audio dans un programme C++ [ par Nicolas ]
Pour un projet C++ (linéaire),il souhaiterais réalisé une bibliothèque musical(.mp3, .wav). J'aurais besoin pour ca de lire les fichiers audio mais je
Poblèmes pour lire un fichier audio dans un programme C++ [ par Nicolas ]
Pour un projet C++ (linéaire),il souhaiterais réalisé une bibliothèque musical(.mp3, .wav). J'aurais besoin pour ca de lire les fichiers audio mais je
Lire la taille d'un fichier avec la DTA [ par metman ]
Comment pouvons-nous avoir la taille d'un fichier a partir des octets 26 27 28 29 de la DTA ?Intéruption 21hfonction 4foctect 26 - 27 = mot faible de
C++ Builder et Telnet [ par Sylvain ]
bonjour,je fais une petite appli en c++ builder ou j'ai 1 client FTP et un client Telnet.Pour le premier, aucun pb, j'utilise TNMFTP mais, je n'arrive
MP3 [ par Berserk666 ]
Bonjourchui arrivé a lire des MP3 avec mciSendString, mais tjs avec cette méthode,je cherche comment savoir qd unMP3 est fini de lire ?Merci @+
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|