Bonjour,
Je suis tout nouveau sur le forum et vais sans doute faire des maladresses de présentation de mon problème...
Je ne suis pas développeur, seulement utilisateur de Matlab pour mon travail (chercheur en écologie).
J'essaye de "visualiser" des signaux accélérométriques enregistrés sur des animaux sauvages pour les interpréter en terme de comportement et reconstituer leur budget temps.
Par visualiser, je veux dire ici les transformer en fichier audio et les rendre compatible multimedia (par wavwrite) pour les entendre : entendre en temps réel la fréquence ou l'amplitude des signaux accélérométriques issus des mouvements me permet en effet de mieux les interpréter....
Mon problème est d'ouvrir directement une application multimedia dans mes programmes pour lire ce signal transformé en audio sans avoir à faire aucun clique sur une interface....
J'ai trouvé l'échange entre 'dut' et 'Vassili68' datant de nov 2007, et ai appliqué le script de dut 'vlc.m'.
SUPER et MERCI, ça fonctionne, c'est magique !
Néanmoins, ce que j'aimerais, c'est lancer cette application sans avoir à cliquer une seule fois (dans une boucle de visualisation d'une sous-partie de mes données sous forme d'une figure classique en plot(t,Ax,'b',t,Ay,'g',T,Az,'r') :
Question 1 : comment modifier ce script pour ne pas avoir à appuyer sur les touches select et play et stop et surtout Exit de la fenêtre VLC ainsi créée avant de revenir dans la boucle de mon programme ???
J'ai réussi à éliminer l'obligation de cliquer la touche select, mais ne sais pas comment shunter le clic 'Play' (je suppose que c'est au niveau de l'instruction " 'tag','play' " dans le script), et surtout shunter le clic sur le "Exit" pour fermer la fenêtre, voir ci-dessous mon script adapté.
Une autre chose que je ne comprends pas du tout (il faut excuser mes questions idiotes, mais j'ai une notion très mauvaise des variables publiques, etc..) : les deux argin 'fichier' et 'chemin' de ma fonction ci-dessous ne fonctionnent pas si en lançant la fonction, je leur donne des noms quelconques : cela bloque plus bas en instruction :
'callback','actionknownMovie(fichier,chemin)')
C'est la première fois que cela m'arrive dans une fonction !
Question 2 : mais pourquoi bon sang???????
Question3 (en rêve) : serait-il imaginable d'avoir en même temps sur la fenêtre video ma figure plot(T,Ax,'b',T,Ay,g',T,Az,'r') défiler (ou s'allonger) avec les données accélérométriques (elles sont en 50Hz) en synchrone avec le son (mon fichier .wav est issu d'une transformation des données accélérométriques en un signal en 5KHz) !
ci-dessous donc, mon script largement inspiré de celui de Dut (vlc.m'), mais totalement bricolé car je suis à 100 000 lieux de comprendre toutes les lignes d'instruction (c'est pas de mon niveau!) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 function playOneFileWavWithVlc(fichier,chemin,volume) % playOneFileWavWithVlc(fichier,chemin,volume) % % va permettre l'ouverture de VLC Media Player avec en sélection automatique le fichier "fichier" % trois argin : % 1/fichier : String contenant l'extension .wav % 2/ chemin, String le path complet, avec ou non à la fin un "\" % 3/ volume, un entier (50 = moyen, 200= fort !') % % ATTENTION, incompréhensible : les deux arguments d'entrée "fichier" et "chemin" doivent être utilisés tels quels dans le lancement de la fonction ! % faire impérativement : fichier= 'toto.wav'; chemin= 'XXX'; playOneFileWavWithVlc(fichier,chemin,volume) % % script interprété trouvé sur le web, écrit par ''DUT" en nov 2007 % % Yves Handrich (first version du 5 mai 2013) recV= findstr(fichier,'.wav'); if isempty(recV), disp('ATTENTION, le nom du fichier doit comprendre l''extension ".wav"'), return, end fig = figure('position',[381 188 850 100],... 'menubar','none',... 'numbertitle','off',... 'tag','vlcfig'); actx = actxcontrol('VideoLAN.VLCPlugin.1', ... 'position',[20 60 820 20], ... 'parent',fig); vi = get(actx,'VersionInfo'); vr = version('-release'); set(fig,'name',sprintf('VLC media player (%s) in MATLAB %s',vi,vr)) actx.volume = volume; uicontrol('units','pixels','position',[20 20 300 20],... 'string',fichier) uicontrol('units','pixels','position',[350+(80+140/3) 20 80 20],... 'string','Play',... 'tag','play',... 'callback','actionknownMovie(fichier,chemin)') handles=guihandles(fig); handles.actx=actx; guidata(fig,handles) function actionknownMovie(fichier,chemin) handles=guidata(findobj('type','figure','tag','vlcfig')); invoke(handles.actx,'addTarget',fullfile(chemin,fichier),[],1,int32(1)); % handles=guidata(findobj('type','figure','tag','vlcfig')); invoke(handles.actx,get(gcbo,'tag'))
Partager