|
|
activex video-plugin über pushbutton steuern? |
|
roobfried |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.11.2007, 16:12
Titel: activex video-plugin über pushbutton steuern?
|
|
|
|
|
hallo, liebe matlab-cracks.
ich versuche, video (mit audio) in einer gui wiederzugeben. die matlab internen methoden funktionieren dafür nicht gut, weil´s hochauflösende clips sind und ich eigentlich nur eine mediaplayerfunktion in der gui haben will.
auf knopfdruck soll ein video geladen werden und auf knopfdruck soll´s abgespielt werden (muss ein gui-pushbutton sein, der einfach nur die start-funktion des plugins auslösen soll). eine weitere steuerung brauch ich nicht, weil damit experimente durchgeführt werden sollen.
nun hab ich die komplette activex-hilfe in matlab durchgekuckt und auch auf den plugin herstellerseiten (quicktime, vlc...) nach tutorials gesucht. die beziehen sich alle auf programmiersprachen, ich will aber eigentlich nur ein bereits bestehendes programm erweitern- meine kenntnisse sind in java oder matlab nicht ausgeprägt genug.
jemand ´ne idee, wie ich das hinbekomme?
einen externen aufruf in vollbildmodus möchte ich umgehen, weil die Upn während der wiedergabe schon bewertungen vornehmen sollen können, und somit z.b. ein slider sichtbar sein muss.
vielen dank für ideen.
|
|
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 29.11.2007, 19:21
Titel:
|
|
|
|
roobfried |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.12.2007, 18:46
Titel:
|
|
danke.
mmread/write hatte ich auch schon ausprobiert. geht aber letztendlich doch auch über matlab interne speicherung etc.- oder?
ich will eingentlich nur fertige clips darbieten, die als solche dann beurteilt werden sollen.
daher ist keine weitere prozessierung notwendig.
danke für den tip. den einen konnte ich gebrauchen!
vielen dank.
gruss, roob.
|
|
|
roobfried |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.12.2007, 18:49
Titel:
|
|
|
|
|
hülfe!
ich verreck´ da drauf!
kann mir jemand sagen, warum das nich funzt-
in der opening-function hab ich des:
% ActivX-Control VLC initialisieren
pos = [0 192 1024 576];
vlc = actxcontrol('VideoLAN.VLCPlugin.1',pos);
assignin('base','vlc',vlc);
handles.vlc = vlc;
vlc = handles.vlc;
% get(vlc)
% events(vlc)
% methodsview(vlc)
% interfaces(vlc)
set(handles.vlc,'AutoPlay',0);
set(handles.vlc,'Volume',100);
set(handles.vlc,'MRL', 'F:\_studium\__DIPLOM\matlab\konkreter\stimuli\r2d2.wmv')
beim callback steht dieses:
% --- Executes on button press in play_pushbutton.
function play_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to play_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
vlc = handles.vlc;
vlc.play;
als basis habe ich die act_ive_gui von der mathworksseite. da steht´s so,
opening-function:
set(gcf,'Color',[0 0 0]);
pos=[0 200 560 300];
MovieControl = actxcontrol('AMOVIE.ActiveMovieControl.2',pos);
assignin('base','MovieControl',MovieControl);
handles.MovieControl = MovieControl;
get(MovieControl)
mp = handles.MovieControl.MediaPlayer;
set(handles.MovieControl.MediaPlayer,'AutoSize',1);
set(handles.MovieControl.MediaPlayer,'ShowAudioControls',0);
set(handles.MovieControl.MediaPlayer,'ShowTracker',0);
set(handles.MovieControl.MediaPlayer,'ShowControls',0);
set(handles.MovieControl.MediaPlayer,'ShowDisplay',0);
callback:
% --- Executes on button press in pla_y.
function pla_y_Callback(hObject, eventdata, handles)
% hObject handle to pla_y (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
mp = handles.MovieControl.MediaPlayer;
set(handles.MovieControl.MediaPlayer,'SendPlayStateChangeEvents',1);
Play(mp);
also mittlerweile bin ich soweit, dass keine fehlermeldungen mehr bei meinem m-file kommen. aber das video wird trotzdem nicht abgespielt.
kann es sein, dass ich die datei mrl-mässig falsch referenziere?
kann man das mit mrl auch relativ machen?
ich bin sowas von ratlos!, leute- helft mir, sonst geht mein diplom kaputt
grüsse und danke.
roob.
|
|
|
roobfried |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.01.2008, 19:35
Titel: ms_mediaplayer tut jetzt, quicktime allerdings nicht
|
|
|
|
|
hallo nochmal.
ich hab meine kühnsten träume realisiert bekommen (allerdings nur mit ms mediaplayer, obwohl ich gerne quicktime benutzen würde).
mein code dafür sieht so aus:
in der OPENING FUNCTION
% ActiveX-Control MovieControl initialisieren
scal = 16/9; % Anzeige-Ratio Stimuli z.B. 16:9
pos = [0, scrsz(4)-scrsz(3)/scal, scrsz(3), scrsz(3)/scal]; % Position des ActX-Plugins
MovieControl = actxcontrol('QTOControl.QTControl.1',pos); % ActX-Plugin einlesen an Position pos
assignin('base','MovieControl',MovieControl); % Speicherbereich belegen
handles.MovieControl = MovieControl;
mc = handles.MovieControl;
mc.set('AutoPlay', '0'); % AutoPlay abschalten
mc.set('MovieControllerVisible', 0); % MC-UserInterface abschalten
% get(mc) % Überprüfen der Einstellungen
handles.mc = mc; % Werte in handles-Struktur
% ablegen
% erste Audiodatei nach Zufallsprinzip einlesen
mc.set('URL', [ 'file:///F:/_studium/__DIPLOM/matlab/_geht_los_quicktime' '/' handles.stimulifolder '/' char(UserData.stimulus_filename(UserData.permlist(handles.next_counter, 1), 1))] );
im CALLBACK:
% überprüfen, ob Audiodatei bereits abgespielt wurde, wenn ja: weiter
% zu Fehlermeldung. Wenn nein: abspielen
if handles.play_counter == 1
% play_counter inkrementieren
handles.play_counter = handles.play_counter + 1;
% play_counter abspeichern
guidata(hObject, handles);
% Stimulus abspielen und play_pushbutton disablen
set(handles.play_pushbutton, 'enable', 'off');
set(handles.answer_slider, 'enable', 'on');
handles.mc.Movie.Play(); %solldas nich eigentlich StartMovie sein? funktioniert auch nicht
else
% Fehlermeldung ausgeben und auf Schließen des Dialogfensters warten
h_err = my_errordlg('Sie können den aktuellen Stimulus nur einmal abspielen!', 'Hinweis', 'on');
waitfor(h_err);
end
Fehlermeldung is dann immer:
??? No appropriate method or public field startMovie for class
Interface.QTOControl_QTControl_1.Movie.
Error in ==> Experiment_Basis>play_pushbutton_Callback at 272
handles.mc.Movie.startMovie();
jemand ´ne ahnung, warum das nich tut? viele dank für tipps!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|