Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

1

23.12.2012, 13:04

Video abspielen mit mciSendString()

Hey Leute,
ich wollte in meinem aktuellen Projekt eine Art cutscene einbauen indem ich
einfach eine .avi abspiele.
Nach einiger Zeit stieß ich auf mciSendString mit dem man ja
relativ leicht dieses Ziel erreichen kann, allerdings öffnet sich dafür ein neues Fenster im Fullscreenmodus.
Ich hätte das Video aber gern in meinem Hauptfenster,
hat jemand damit zufällig Erfahrung? ?(

So siehts momentan aus:

C-/C++-Quelltext

1
2
3
    mciSendString(L"open  file.avi "    ,0,0,0);
    mciSendString(L"play  file.avi wait",0,0,0);
    mciSendString(L"close file.avi"     ,0,0,0);



MfG Marcel
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

2

24.12.2012, 18:47

Oder kennt jemand einen anderen Weg relativ einfach eine avi abzuspielen.
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

25.12.2012, 12:31

Ich hatte das gleiche Problem, hab allerding's weil ich mein Pw vergessen hatte in einem anderem Forum mal angefragt ( ich heise auch dort cppfan [ vieleicht zu unkreativ :hmm: ]):
http://www.c-plusplus.de/forum/311394
Jetzt geht alles einwand frei... :thumbsup:
Beispiele:
http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspx

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

5

26.12.2012, 00:28

Danke für die Hilfe :)
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

6

29.12.2012, 21:15

Ich bins nochmal , also hab jetzt diese Lösung gewählt,

C-/C++-Quelltext

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
IGraphBuilder *pGraph = NULL;;
    IMediaControl *pControl = NULL;
    IMediaEvent   *pEvent = NULL;

    // Initialize the COM library.
    HRESULT hr = CoInitialize(NULL);
    if (FAILED(hr))
    {
        printf("ERROR - Could not initialize COM library");
        return;
    }

    // Create the filter graph manager and query for interfaces.
    hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                        IID_IGraphBuilder, (void **)&pGraph);
    if (FAILED(hr))
    {
        printf("ERROR - Could not create the Filter Graph Manager.");
        return;
    }
    hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
    hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);

    // Build the graph. IMPORTANT: Change this string to a file on your system.
    hr = pGraph->RenderFile(L"file.avi", NULL);

    if (SUCCEEDED(hr))
    {
        // Run the graph.
        hr = pControl->Run();
        if (SUCCEEDED(hr))
        {
            // Wait for completion.
            long evCode;
            pEvent->WaitForCompletion(INFINITE, &evCode);

            // Note: Do not use INFINITE in a real application, because it
            // can block indefinitely.
        }
    }
    pControl->Release();
    pEvent->Release();
    pGraph->Release();
    CoUninitialize();



Kann mir da jemand helfen das Video in meinem bestehenden Fenster
abspielen zulassen.
Ich denke ich muss iwie mein Handle vom Fenster übergeben,
aber wo und wie ?(

MfG Marcel
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

29.12.2012, 22:25

So einfach ist es leider nicht.
http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx

Interessant für dich ist das Sample "Texture3D9".

Werbeanzeige