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

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

11

14.07.2010, 11:38

Naja, "Lautsprechersystem" halt... ;-)

12

14.07.2010, 12:07

Jep ... dabei würde man doch annehmen, das n System besser ist, als einfache Boxen ^^

Edit: Hoffe, es kann mir jemand einen Rat zu meiner obrigen Frage geben :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ombalat« (14.07.2010, 16:51)


13

15.07.2010, 19:10

Hey, ich sitze immer noch bei meiner bearbeitung meiner Soundklasse.
Ich glaube, den Fehler gefunden zu haben, weiß aber nicht, wie ich den beheben kann.
Komme mit dem Debugger auch nicht weiter.

Hier einmal die relevante Code - Stelle:

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//Initialisierung
FMOD::System    *m_pSystem;
FMOD::Sound     *m_pSound,*m_pSound2,*m_pSound3;
FMOD::Channel   *m_pChannel[100];
FMOD_RESULT     m_result;
unsigned int         m_version;

m_result = FMOD::System_Create(&m_pSystem); //System erzeugen
ERRCHECK(m_result);

m_result = m_pSystem->getVersion(&m_version); //System Version abfragen
ERRCHECK(m_result);

if (m_version < FMOD_VERSION) //Version überprüfen
{
        printf("Error!  You are using an old version of FMOD %08x.  This program requires %08x\n", m_version, FMOD_VERSION);
}
else
{
        m_result = m_pSystem->init(100, FMOD_INIT_NORMAL, 0); //System initialisieren
        ERRCHECK(m_result);

        //Sounddatei erzeuegn
        m_result = m_pSystem->createSound("Music/01.mp3", FMOD_HARDWARE | FMOD_LOOP_OFF | FMOD_2D, 0, &m_pSound);
        ERRCHECK(m_result);
        m_result = m_pSystem->createSound("Sound/01.sound", FMOD_HARDWARE | FMOD_LOOP_OFF | FMOD_2D, 0,         &m_pSound2);
        ERRCHECK(m_result);
        m_result = m_pSystem->createSound("Sound/02.sound", FMOD_HARDWARE | FMOD_LOOP_OFF | FMOD_2D, 0,         &m_pSound3);
        ERRCHECK(m_result);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//Dieser Code - Block steht bei mir in einem Case - Zweig
bool bstatus = false;
m_pChannel[1] -> isPlaying(&bstatus);
cout << bstatus;
if(bstatus == true)
{
        m_result = m_pChannel[1] -> setPosition(0,FMOD_TIMEUNIT_MS);
        ERRCHECK(m_result);
}
else
        m_pSystem -> playSound(FMOD_CHANNEL_FREE, m_pSound2, false, &m_pChannel[1]); //Hier vermute ich den Fehler

m_pSystem->update();

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Ende des Switch

//Herunterfahren
m_result = m_pSound->release();
ERRCHECK(m_result);
m_result = m_pSound2->release();
ERRCHECK(m_result);
m_result = m_pSound3->release();
ERRCHECK(m_result);
     
m_result = m_pSystem->close();
ERRCHECK(m_result);
m_result = m_pSystem->release();
ERRCHECK(m_result);


Also im unteren Teil bei der If - Verzweigung denke ich, den Fehler gefunden zu haben.
Wenn der Sound nicht spielt, kann ich ihn nicht über den Channel einfach mit eine Positionsangabe zurücksetzten.
Und wenn er dann vom System erzeugt wird, bekomme ich am ende beim herunterfahren der Systeme, beim m_pSystem -> close() eine zugriffsverletztung

Edit:
Hey ... Also ich hab jetzt statt dem CreateSound wieder mein vorheriges CreateStream verwendet ... und da tritt das Problem seltsamer Weiße nicht auf .... Werd dann wohl doch bei den Streams bleiben ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ombalat« (16.07.2010, 15:27)


Werbeanzeige