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

11

07.12.2009, 19:44

Woran kann das denn noch liegen?

12

07.12.2009, 20:05

Was ist mit tbVideo::Process ??


Stürtzt das Programm einfach ab ? Nichts im Log ? Dann würde ich mal spekulieren, dass die Sache nicht am Sound, sondern an der Anwendung liegt. Poste mal die Wichtigen Codestellen, wie sie aktuell aussehnen.

13

07.12.2009, 20:28

Process() wird in der Move-Funktion aufgerufen.

C-/C++-Quelltext

1
m_pVideo->Process();


Initialisieren und abspielen:

C-/C++-Quelltext

1
2
3
4
5
6
7
 m_pVideo = (tbVideo*)(tbMemAlloc(sizeof(tbVideo)));
    if(m_pVideo->Init("Data\\Logo.avi",TRUE))
    {
        MessageBox(tbDirect3D::Instance().GetWindow(), "Fehler beim Laden des Videos", "Fehler", MB_OK | MB_ICONEXCLAMATION);
        Unload();
    }
    m_pVideo->Play(FALSE);


Und die Renderfunktion:

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
bResult CIntro::Render(float fTime)
{
    STitleVertex aVertex[4];

    tbDirect3D& D3D = tbDirect3D::Instance();
    D3D->Clear(0 , 0 , D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, tbColor(0.0f,0.0f,0.0f), 1.0f, 0);
    D3D->BeginScene();

    D3D.SetFVF(STitleVertex::dwFVF);
    if(m_pVideo->IsPlaying()) { D3D.SetTexture(0, m_pVideo->GetRenderer()->GetTexture()); } //hier stüztz das Spiel ab

    else                      {                      D3D.SetTexture(0, m_pBackground);    }
    D3D.SetRS(D3DRS_ZENABLE, D3DZB_FALSE);

    aVertex[0].vPosition = tbVector3(0.0f, D3D.GetScreenSize().y, 0.5f);
    aVertex[0].fRHW = 1.0f;
    aVertex[0].Color = tbColor(1.0f, 0.8f, 0.8f);
    if(m_pVideo->IsPlaying()) { aVertex[0].vTex0 = tbVector2(0.0f, m_pVideo->GetRenderer()->GetBottomRightTex().y); }
    else                      { aVertex[0].vTex0 = tbVector2(0.0f, 1.0f);                                           }
//Und so weiter...

D3D->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex, sizeof(STitleVertex));

    if(!m_pVideo->IsPlaying()) {
    g_pTicTacToe->m_pFont->Begin();
    g_pTicTacToe->m_pFont->DrawText(tbVector2(0.5f, 0.5f), "Drücken Sie Enter", TB_FF_ALIGN_HCENTER | TB_FF_ALIGN_VCENTER | TB_FF_RELATIVE | TB_FF_RELATIVESCALING);
    g_pTicTacToe->m_pFont->End(); }

    D3D->EndScene();

    m_pVideo->NextFrame();

    return TB_OK;
}


Oh...hab ja etwas ganz vergessen. Diese Fehlermeldung kommt:
Unbehandelte Ausnahme bei 0x4fdd799b in TicTacToe.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0xcdcdcd7d.
'Tschuldigung :oops:
mfg

14

07.12.2009, 21:34

Hab noch etwas rumprobiert und einfach mal als Videotextur die Hinter-
grundtextur genommen. Dann spielt er den Sound ab aber logischerweise
das Video nicht.
Vielleicht hilft das ja bei der Fehlerlösung.

mfg

15

07.12.2009, 21:48

Ist tbVideo überhaupt mit Sound ausgerüstet.
Oder wird der Sound automatisch über einen anderen Filter verarbeitet.
Ich hab das Video auch einmal mit dem Beispieltprogramm versucht
abzuspielen. Kommt der selbe Fehler.

mfg

16

08.12.2009, 14:06

Im Buch steht, dass die Sounds funktionieren.
Allerdings steht da auch noch was von tbVideo::Process ().

(jedenfalls glaub ich mich zu erinnern. Genau nachlesen kannste ja selbst ;) )

17

08.12.2009, 16:11

Danke für deine Antwort ;)
Habe dann noch mal ins Buch geguckt und bin zufällig auf die Seite gestoßen,
auf der beschrieben wird, dass man das Video auch in den Speicher laden
kann, um es schon einmal im voraus puffern zu können.
Und da kam mir der Gedanke, dass es da vielleicht ein Problem geben
könnte. Und so war es auch.

Habe dann einfach mal angegeben, dass er immer wieder auf das Video
zugreifen soll. (weil soo groß ist das jetzt auch nicht)

C-/C++-Quelltext

1
2
3
4
5
6
7
    m_pVideo = (tbVideo*)(tbMemAlloc(sizeof(tbVideo)));
    if(m_pVideo->Init("Data\\Logo.avi",FALSE))
    {
        MessageBox(tbDirect3D::Instance().GetWindow(), "Fehler beim Laden des Videos", "Fehler", MB_OK | MB_ICONEXCLAMATION);
        Unload();
    }
    m_pVideo->Play(FALSE);

Und jetzt klappt es.

Vielen Dank für eure Hilfe!

mfg

18

08.12.2009, 20:38

Hallo, hallo,

ich kämpfe gerade mit der BaseClasses, ich bekomme sie einfach nicht gelinkt:

Zitat


Fehler 61 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall CBaseVideoRenderer::CBaseVideoRenderer(struct _GUID const &,wchar_t *,struct IUnknown *,long *)" (??0CBaseVideoRenderer@@QAE@ABU_GUID@@PA_WPAUIUnknown@@PAJ@Z)" in Funktion ""public: __thiscall CVideoRenderer::CVideoRenderer(struct IUnknown *,long *)" (??0CVideoRenderer@@QAE@PAUIUnknown@@PAJ@Z)". VideoRenderer.obj CamRotation
Fehler 62 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall CAsyncReader::CAsyncReader(wchar_t *,struct IUnknown *,class CAsyncStream *,long *)" (??0CAsyncReader@@QAE@PA_WPAUIUnknown@@PAVCAsyncStream@@PAJ@Z)" in Funktion ""public: __thiscall CMemReader::CMemReader(class CMemStream *,class CMediaType *,long *)" (??0CMemReader@@QAE@PAVCMemStream@@PAVCMediaType@@PAJ@Z)". VideoRenderer.obj CamRotation

Woran liegt das denn? Welche Libs muß ich denn noch linken?

Diese sind bereits gelinkt:

#pragma comment ( lib, "strmiids.lib" )
#pragma comment ( lib, "strmbasd.lib" )
#pragma comment ( lib, "dsound.lib" )
#pragma comment ( lib, "dxguid.lib" )
#pragma comment ( lib, "dinput8.lib" )
#pragma comment ( lib, "D3d9.lib" )
#pragma comment ( lib, "d3dx9.lib" )
#pragma comment ( lib, "Winmm.lib" )

Zitat

Fehler 14 error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Postbuildereignis wird ausgeführt..." BaseClasses BaseClasses


Und das kommt auch noch.

OK, gelinkt bekomme ich es nun, lag daran, daß ich die BaseClasses nicht UNICODE erstellt habe, aber das restliche Projekt ist es.
Nun wird mir aber kein Fiddscho auf der Textur angezeigt, sondern ein schwarzes etwas und irgendwie zuckt es auf dem Monitor oder Window geht in die jewigen Jagdgründe - BSOD - SUPER!

Diesen Fehler bekomme ich trotzdem noch:

Zitat

Fehler 14 error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Postbuildereignis wird ausgeführt..." BaseClasses BaseClasses

Werbeanzeige