AnimatedControl - Converter
-
Ja, ich hab es mit dem erstellten Window versucht. Recht viel falsch machen kann man da doch nicht.
-
Poste einfach mal deinen kompletten Code, kann ja nicht so viel sein.
-
HWND m_vid = MCIWndCreate(hWndImage, GetModuleHandle(NULL), WS_CHILD | WS_VISIBLE| MCIWNDF_NOMENU| MCIWNDF_NOTIFYALL| MCIWNDF_NOPLAYBAR, "data\\test.avi"); char *command = "open \"data\\test.avi\" type mpegvideo alias test"; MCIERROR a = mciSendString(command, NULL, NULL, NULL); MCIERROR a_1 = mciSendString("window test handle m_vid", NULL, NULL, NULL); MCIERROR a_2 = mciSendString("play test", NULL, NULL, NULL);
-
Was soll Windows mit deinem Variablennamen anfangen können? Du musst schon den Wert der Variable in den String schreiben. Und ich glaub, für den window Befehl brauchst du MCIWndCreate nicht, bin mir jetzt aber nicht sicher.
-
@Unreg
Und muss es in C bzw. C++ implementiert sein?In C# klickst du dir in ein paar Minuten ne Form oder ein WCF-Fenster zusammen wo du in ein paar weiteren Minuten deine 10 Videos mit nem MediaPlayer Control drinnen laufen hast (je einem natürlich).
-
@Mechanics
Wenn ich das mit MCIWndCreate erstellte Fenster oder mein Main-Window verwende, bekomme ich wieder den BAD_CONSTANT Error.@hustbaer
Ja, es muss in C/C++ sein.Ich glaub es wird wirklich mal zeit auf eine andere API umzusteigen...
-
Ich hab das Gefühl, dass du immer noch was falsch machst. Du gibst doch anscheinend wirklich "m_vid" rein, und nicht den Wert davon.
-
Dann mal hier der Code:
HWND m_vid = MCIWndCreate(hWndImage, GetModuleHandle(NULL), WS_CHILD | WS_VISIBLE| MCIWNDF_NOMENU| MCIWNDF_NOTIFYALL| MCIWNDF_NOPLAYBAR, "data\\test.avi"); char *command = "open \"data\\test.avi\" type mpegvideo alias test"; char value_hwnd[255] = "window test handle "; char value_hwnd2[255]; sprintf(value_hwnd2, "%p", m_vid); strcat(value_hwnd, value_hwnd2); MCIERROR a = mciSendString(command, NULL, NULL, NULL); MCIERROR a_1 = mciSendString(value_hwnd, NULL, NULL, NULL); MCIERROR a_2 = mciSendString("play test", NULL, NULL, NULL);
Auch in der Debugging-Console stimmen die Werte überein.
-
Habs grad ausprobiert, funktioniert bei mir wunderbar. Ich benutz aber Qt und bin zur Zeit etwas von den entsprechenden String Funktonen verwöhnt. Hab schon ewig nicht mehr mit C Strings gearbeitet, kann jetzt also nicht sagen, inwiefern das passt. Was sicher falsch ist, ist der p Parameter, du brauchst eher d. Ansosten ist value_hwnd2 wohl sowohl uninitialisiert, als auch zu lang, weil nicht 0 terminiert nach dem Wert.
-
Super, %d hats ausgemacht.
Vielen Dank für deine Geduld und Lösungen.
-
Hallo,
nun hätte ich jedoch noch eine letzte Frage: Ist es möglich mit MCI auch Videos von der Resource abzuspielen?MfG
-
Nein, aber das wird auch mit keinem anderen Framework ohne weiteres gehen. Das einfachste ist, die Datei aus der Resource ins Temp Verzeichnis zu schreiben und von dort abzuspielen.
Mit DirectShow hättest du zwar die Möglichkeit, eigene Source Filter zu schreiben, aber das ist so viel Aufwand, dass ich mir das erst gar nicht näher anschauen würde.
-
Ja, dass es mit DirectShow mit viel arbeit geht wusste ich. Wollte nur mal fragen ob es bei MCI evtl. die Möglichkeit gibt.
Danke.