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

1

06.12.2009, 14:35

tbVideo - Sound

Hallo zusammen,
Ich habe ein Video mit Sound im avi.-Format vorliegen.
Nun zu meinem Problem:
Wenn ich mein Programm/Spiel ausführe bricht es bei der Erstellung
der Textur, auf der das Video abgespielt werden soll, ab.
Ohne Sound hat das alles geklappt aber seitdem ich den Sound dazu gepackt habe, klappt es nicht mehr.

Hier noch ein paar Codezeilen:

C-/C++-Quelltext

1
2
3
4
    D3D.SetFVF(STitleVertex::dwFVF);
    if(m_pVideo->IsPlaying()) { D3D.SetTexture(0, m_pVideo->GetRenderer()->GetTexture()); } //hier bricht er ab

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

Schon mal danke ;)

mfg

2

06.12.2009, 19:14

Weiß keiner eine Antwort?
Muss ich den Sound getrennt abspielen?

Hier noch mehr Code
Init()

C-/C++-Quelltext

1
2
3
4
5
6
7
8
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();
        return TB_ERROR;
    }
    m_pVideo->Play(FALSE);

Unload()

C-/C++-Quelltext

1
TB_SAFE_MEMFREE(m_pVideo);


Oder liegt das Problem bei der Speicher reservierung?
mfg

3

06.12.2009, 19:37

Wird denn die Datei in einem normalen Media-Player richtig abgespielt ? Was sagt das Logfile ?

4

06.12.2009, 19:52

Danke für deine Antowort.
Und ja, im Windows Media Player spielt er sie tadellos ab.

und hier das Logfile

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
INFO: TriBase-Engine wird initialisiert...   (tribase.cpp, Zeile 86, Funktion tbInit)
INFO: Initialisierung komplett! (tribase.cpp, Zeile 104, Funktion tbInit)
INFO: Der Konfigurationsdialog wird aufgerufen...   (tbconfig.cpp, Zeile 1050, Funktion tbDoConfigDialog)
INFO: Die Direct3D-Komponente wird initialisiert... (tbdirect3d.cpp, Zeile 162, Funktion tbDirect3D::Init)
INFO: Erstellen des Fensters... (tbdirect3d.cpp, Zeile 169, Funktion tbDirect3D::Init)
INFO: Initialisierung von Direct3D...   (tbdirect3d.cpp, Zeile 209, Funktion tbDirect3D::Init)
INFO: Die Initialisierung der Direct3D-Komponente ist abgeschlossen!    (tbdirect3d.cpp, Zeile 274, Funktion tbDirect3D::Init)
INFO: Texturmanager wurde initialisiert!    (tbtexturemanager.cpp, Zeile 43, Funktion tbTextureManager::Init)
INFO: Die DirectInput-Komponente wird initialisiert...  (tbdirectinput.cpp, Zeile 702, Funktion tbDirectInput::Init)
INFO: DirectInput-Schnittstelle wird generiert...   (tbdirectinput.cpp, Zeile 720, Funktion tbDirectInput::Init)
INFO: Initialisierung der Maus komplett!    (tbdirectinput.cpp, Zeile 662, Funktion EnumDevicesCallback)
INFO: Initialisierung der Tastatur komplett!    (tbdirectinput.cpp, Zeile 656, Funktion EnumDevicesCallback)
INFO: Die DirectInput-Komponente wurde erfolgreich initialisiert!   (tbdirectinput.cpp, Zeile 754, Funktion tbDirectInput::Init)
INFO: Nachrichtenschleife wird betreten...  (tribase.cpp, Zeile 179, Funktion tbDoMessageLoop)

5

06.12.2009, 19:56

und wo ist da DirectSound initialisiert?
Metal ist keine Musik sondern eine Religion.

6

06.12.2009, 20:13

Nirgendwo =/.
Aber mit Video steht da doch auch nichts, oder?
Hab jetzt mal so versucht einfach mal einen Sound zu laden.

C-/C++-Quelltext

1
2
3
4
5
6
    m_pSound = new tbSound;
    if(m_pSound->Init("Data\\Sound1.wav", DSBCAPS_STATIC | DSBCAPS_LOCDEFER | DSBCAPS_CTRLFREQUENCY))
    {
        TB_ERROR("Fehler beim Laden des Sounds!", TB_ERROR);
        Unload();
    }


Dann steht aber in der Logfatei:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
INFO: TriBase-Engine wird initialisiert...  (tribase.cpp, Zeile 86, Funktion tbInit)
INFO: Initialisierung komplett! (tribase.cpp, Zeile 104, Funktion tbInit)
INFO: Der Konfigurationsdialog wird aufgerufen...   (tbconfig.cpp, Zeile 1050, Funktion tbDoConfigDialog)
INFO: Die Direct3D-Komponente wird initialisiert... (tbdirect3d.cpp, Zeile 162, Funktion tbDirect3D::Init)
INFO: Erstellen des Fensters... (tbdirect3d.cpp, Zeile 169, Funktion tbDirect3D::Init)
INFO: Initialisierung von Direct3D...   (tbdirect3d.cpp, Zeile 209, Funktion tbDirect3D::Init)
INFO: Die Initialisierung der Direct3D-Komponente ist abgeschlossen!    (tbdirect3d.cpp, Zeile 274, Funktion tbDirect3D::Init)
INFO: Texturmanager wurde initialisiert!    (tbtexturemanager.cpp, Zeile 43, Funktion tbTextureManager::Init)
INFO: Die DirectInput-Komponente wird initialisiert...  (tbdirectinput.cpp, Zeile 702, Funktion tbDirectInput::Init)
INFO: DirectInput-Schnittstelle wird generiert...   (tbdirectinput.cpp, Zeile 720, Funktion tbDirectInput::Init)
INFO: Initialisierung der Maus komplett!    (tbdirectinput.cpp, Zeile 662, Funktion EnumDevicesCallback)
INFO: Initialisierung der Tastatur komplett!    (tbdirectinput.cpp, Zeile 656, Funktion EnumDevicesCallback)
INFO: Die DirectInput-Komponente wurde erfolgreich initialisiert!   (tbdirectinput.cpp, Zeile 754, Funktion tbDirectInput::Init)
FEHLER: DirectSound wurde noch nicht initialisiert! (tbsound.cpp, Zeile 167, Funktion tbSound::Init)
FEHLER: Fehler beim Erstellen des Sounds!   (tbsound.cpp, Zeile 290, Funktion tbSound::Init)
FEHLER: Fehler beim Laden des Sounds!   (intro.cpp, Zeile 20, Funktion CIntro::Init)
INFO: Nachrichtenschleife wird betreten...  (tribase.cpp, Zeile 179, Funktion tbDoMessageLoop)


Aber ich Initialsiert die doch mit m_pSound->(...), oder nicht?

mfg

7

06.12.2009, 20:27

Nene

C-/C++-Quelltext

1
tbDirectSound::Instance().Init();
glaub ich :?
Metal ist keine Musik sondern eine Religion.

8

07.12.2009, 15:54

Ja du hast recht.
Man Initialisiert die Soundklasse wie folgt:

C-/C++-Quelltext

1
2
3
4
5
6
    // Und nun noch DirectSound...

    if(tbDirectSound::Instance().Init(&m_Config, NULL, DSSCL_PRIORITY, FALSE))
    {
        // Fehler!

        TB_ERROR("DirectSound konnte nicht initialisiert werden!", TB_ERROR);
    }

Aber das Spiel bricht trotzdem noch an der der selben Stelle ab.

So sieht jetzt das Logfile aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
INFO: TriBase-Engine wird initialisiert...   (tribase.cpp, Zeile 86, Funktion tbInit)
INFO: Initialisierung komplett! (tribase.cpp, Zeile 104, Funktion tbInit)
INFO: Der Konfigurationsdialog wird aufgerufen...   (tbconfig.cpp, Zeile 1050, Funktion tbDoConfigDialog)
INFO: Die Direct3D-Komponente wird initialisiert... (tbdirect3d.cpp, Zeile 162, Funktion tbDirect3D::Init)
INFO: Erstellen des Fensters... (tbdirect3d.cpp, Zeile 169, Funktion tbDirect3D::Init)
INFO: Initialisierung von Direct3D...   (tbdirect3d.cpp, Zeile 209, Funktion tbDirect3D::Init)
INFO: Die Initialisierung der Direct3D-Komponente ist abgeschlossen!    (tbdirect3d.cpp, Zeile 274, Funktion tbDirect3D::Init)
INFO: Texturmanager wurde initialisiert!    (tbtexturemanager.cpp, Zeile 43, Funktion tbTextureManager::Init)
INFO: Die DirectInput-Komponente wird initialisiert...  (tbdirectinput.cpp, Zeile 702, Funktion tbDirectInput::Init)
INFO: DirectInput-Schnittstelle wird generiert...   (tbdirectinput.cpp, Zeile 720, Funktion tbDirectInput::Init)
INFO: Initialisierung der Maus komplett!    (tbdirectinput.cpp, Zeile 662, Funktion EnumDevicesCallback)
INFO: Initialisierung der Tastatur komplett!    (tbdirectinput.cpp, Zeile 656, Funktion EnumDevicesCallback)
INFO: Die DirectInput-Komponente wurde erfolgreich initialisiert!   (tbdirectinput.cpp, Zeile 754, Funktion tbDirectInput::Init)
INFO: Die DirectSound-Komponente wird initialisiert...  (tbdirectsound.cpp, Zeile 45, Funktion tbDirectSound::Init)
INFO: DirectSound-Schnittstelle wird generiert...   (tbdirectsound.cpp, Zeile 56, Funktion tbDirectSound::Init)
INFO: Generiere primären Soundpuffer...    (tbdirectsound.cpp, Zeile 67, Funktion tbDirectSound::Init)
INFO: Die DirectSound-Komponente wurde erfolgreich initialisiert!   (tbdirectsound.cpp, Zeile 111, Funktion tbDirectSound::Init)
INFO: Nachrichtenschleife wird betreten...  (tribase.cpp, Zeile 179, Funktion tbDoMessageLoop)


mfg

9

07.12.2009, 16:19

gibt es eigentlich auch eine tbVideo Schnittstelle?
Metal ist keine Musik sondern eine Religion.

10

07.12.2009, 16:59

Nicht, dass ich wüsste. Habe jedefall nichts der gleichen in dem
Beispielprogramm dazu gefunden.
Es lief ja vorher, nur seitdem der Ton dabei ist bricht das Spiel ab.

mfg

Werbeanzeige