 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 24.01.2005, 21:06 Titel: Sounds hören sich sehr seltsam an |
|
|
Ich hab's endlich geschafft und meinen Soundlader fertig.
Problem ist jetzt jedoch: Es hört sich alles irgendwie furchtbar seltsam an (metallisch). Auch wenn ich ein Soundfile, welches ca. 1 Sekunde lang ist lade und das nicht looped abspiele spielt er das so lange bis man das Programm abbricht.
Hier mal der Code:
CPP: | HRESULT CRDSound::LoadSound(char *cFileName)
{
if(FAILED(CheckSound(cFileName)))
return CRD_FAIL;
char cErrorMsg[1024];
HRESULT hr;
WCHAR wcFileName[MAX_PATH];
if(MultiByteToWideChar(CP_ACP,0,cFileName,-1,wcFileName,MAX_PATH)==0)
return E_FAIL;
m_vSound.resize(m_iNumSounds+1);
m_vSound[m_iNumSounds].cName = cFileName;
m_vSound[m_iNumSounds].iID = m_iNumSounds;
// Datei laden:
if(FAILED(hr=m_lpLoader->LoadObjectFromFile(CLSID_DirectMusicSegment,
IID_IDirectMusicSegment8,
wcFileName,
(void**)&m_vSound[m_iNumSounds].pSegment)))
{
if ( (hr==DMUS_E_LOADER_FAILEDOPEN) ||
(hr==DMUS_E_LOADER_FAILEDCREATE) )
return CRD_FILENOTFOUND;
else if (hr==DMUS_E_LOADER_FORMATNOTSUPPORTED)
return CRD_FORMATNOTSUPPORTED;
else if (hr==E_OUTOFMEMORY)
return CRD_OUTOFMEMORY;
return CRD_FAIL;
}
if(FAILED(m_vSound[m_iNumSounds].pSegment->Download(m_lpPerformance)))
{
sprintf(cErrorMsg,"Soundfile %s / Download der Instrumente fehlgeschlagen\n",m_vSound[m_iNumSounds].cName);
m_Log->WriteToLog(cErrorMsg);
return CRD_FAIL;
}
sprintf(cErrorMsg,"Soundfile %s wurde geladen (ID-Nr. %d)\n",m_vSound[m_iNumSounds].cName,m_vSound[m_iNumSounds].iID);
m_Log->WriteToLog(cErrorMsg);
m_iNumSounds++;
return CRD_OK;
} // LoadSound
HRESULT CRDSound::CheckSound(char *cFileName)
{
for(int i=0; i<m_iNumSounds;i++)
{
if(m_vSound[i].cName == cFileName)
{
return E_FAIL;
}
}
return S_OK;
} // CheckSound
HRESULT CRDSound::PlaySound(char* cFileName, bool bLoop)
{
// ID rauskriegen:
int iID = ReturnID(cFileName);
if(iID == -1)
return CRD_FILENOTFOUND;
// Play Looped???
if(bLoop)
m_vSound[iID].pSegment->SetRepeats(DMUS_SEG_REPEAT_INFINITE);
// als Sekundären Buffer abspielen:
if(FAILED(m_lpPerformance->PlaySegment(m_vSound[iID].pSegment,
DMUS_SEGF_DEFAULT |
DMUS_SEGF_SECONDARY,
0,
0)))
return CRD_FAIL;
return CRD_OK;
} // PlaySound
int CRDSound::ReturnID(char *cFileName)
{
for(int i=0; i < m_iNumSounds; i++)
{
if(m_vSound[i].cName == cFileName)
return i;
}
return -1;
}
|
(Hey GreveN ich hab sogar mit STL gearbeitet, Danke nochmal für den Tipp!)  _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 24.01.2005, 21:36 Titel: |
|
|
Wo ist die Initialisierung?
CoCreateInstance und m_lpPerformance->InitAudio
Zuletzt bearbeitet von KI am 25.01.2005, 11:59, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 25.01.2005, 07:30 Titel: |
|
|
Hat ich nicht mit gepostet
CPP: | HRESULT CRDSound::Init(HWND hWnd)
{
if(hWnd==0)
return E_FAIL;
WCHAR wcFilePath[MAX_PATH];
// COM initialisieren
CoInitialize(NULL);
if(FAILED(CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
CLSCTX_INPROC, IID_IDirectMusicPerformance8,
(void**)&m_lpPerformance )))
return E_FAIL;
if(FAILED(CoCreateInstance(CLSID_DirectMusicLoader, NULL,
CLSCTX_INPROC, IID_IDirectMusicLoader8,
(void**)&m_lpLoader)))
return E_FAIL;
// Initialisieren
if(FAILED(m_lpPerformance->InitAudio(NULL,
NULL,
NULL,
DMUS_APATH_SHARED_STEREOPLUSREVERB, //DMUS_APATH_DYNAMIC_STEREO,
64,
DMUS_AUDIOF_ALL,
NULL )))
return E_FAIL;
// Suchpfad auswählen
if(MultiByteToWideChar( CP_ACP, 0, "sound", -1, wcFilePath, MAX_PATH )==0)
return E_FAIL;
// Suchpfad setzen
if(FAILED(m_lpLoader->SetSearchDirectory(GUID_DirectMusicAllTypes,
wcFilePath,
FALSE )))
return E_FAIL;
return S_OK;
} // Init |
_________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 25.01.2005, 07:52 Titel: |
|
|
Metallisch->sound auch mit den korrekten Einstellungen geladen oder irgendwelche Codecs mit aktiviert ? Oder liegt das evtl hieran: DMUS_APATH_SHARED_STEREOPLUSREVERB
Immer geloopt->kann sein das du die Anzahl der Wiederholungen auf 1 legen musst, so wie ichs beim drüberfliegen gesehen hae tust du das nur festlegenm wenn ein sound geloopt ist _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 25.01.2005, 08:43 Titel: |
|
|
Ich glaube auch, dass es an diesem REVERB Parameter liegt.
Bei der Initialisierung kannst brauchst du übrigens nicht MultiByteToWideChar aufzurufen. So wie es aussieht bleibt der Suchpafd immer gleich. Übergib doch einfach L"sound" anstatt wcFilePath.
Dann sparst du dir eine char Variable. 
Zuletzt bearbeitet von KI am 25.01.2005, 12:04, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 25.01.2005, 11:02 Titel: |
|
|
Ich habs auch schon mit DMUS_APATH_DYNAMIC_STEREO versucht, aber das Endresultat ist gleich.
Ich befürchte das irgendwas an der Laderoutine verkehrt ist, aber ich find nicht was.
Benutze ich das selbe Soundfile mit dem Beislpiel aus dem JLI-Buch funktionierts, und meine Routine ist nahezu gleich aufgebaut... Seltsam seltsam... _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 25.01.2005, 12:02 Titel: |
|
|
Lass DMUS_SEGF_SECONDARY bei PlaySegment weg. (Also nur DMUS_SEGF_DEFAULT)
Welches Format lädst du? WAV?
edit:
Wenn es mit dem Beispiel aus dem JLI-Buch funktioniert, dürfte es eigentlich nicht an dem SECONDARY Parameter liegen... Am besten du vergleicht alles mal haargenau, ist ja nicht viel. |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 25.01.2005, 12:42 Titel: |
|
|
ne, damit funktionierts dann gar nicht. Mist, muss ich wohl nochmal ganz von vorne anfangen... _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 25.01.2005, 16:12 Titel: |
|
|
schneidi74 hat Folgendes geschrieben: | Mist, muss ich wohl nochmal ganz von vorne anfangen... |
manchmal ist das die beste Lösung weiter zu kommen |
|
Nach oben |
|
 |
schneidi74 Senior JLI'ler

Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 25.01.2005, 16:38 Titel: |
|
|
Aber ich hab mich doch schon so gefreut, das ich endlich fertig bin damit  _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|