Op dit moment ben ik bezig met het schrijven van een basis player / recorder van wave bestanden. Met mogelijkheden om uit te breiden met een equaliser. Een om wave bestand te spelen gebruik ik de waveOutOpen functie op de volgende manier:
De functie waar dit in staat wordt hier in regel 13 aangeroepen:
Wanneer ik een wave file probeer te openen retourneerd deze functie MMSYSERR_ALLOCATED. In de MSDN staat daarbij dat de resource is already allocated. Alle voorbeeldcode die ik heb gevonden gebruikt deze functie op precies dezelfde manier, dus snap ik niet wat er mis mee is.
Daarna heb ik gekeken of er wel een device aanwezig was dat WAVE support heeft met de waveOutGetNumDevs() functie. Daaruit blijkt dat er 1 device aanwezig is.
Als ik een wave file probeer af et spelen met de sndPlaySound() functie werkt het perfect, dus op een of andere manier gaat het openen dus niet goed.
Heeft iemand een idee waar de fout ligt?
Bij voorbaat dank,
Miep.
C++:
1
| mmErr = waveOutOpen(&hWave, WAVE_MAPPER, &waveformat, (DWORD) waveOutProc, NULL, CALLBACK_FUNCTION); |
De functie waar dit in staat wordt hier in regel 13 aangeroepen:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| void CSEBaseDlg::OnOpenfile() { CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | FN_OVERWRITEPROMPT, "All|*.*|wave|*.wav||"); if (dlg.DoModal() == IDOK) { pathname = dlg.GetPathName(); file = new CFile; file->Open(pathname, NULL, NULL); m_PlayButton.EnableWindow(true); } m_OpenedFile = file->GetFileName(); SetDlgItemText(IDC_OPENEDFILE, m_OpenedFile); player.PlayOpen(); player.LoadWave(file); } |
Wanneer ik een wave file probeer te openen retourneerd deze functie MMSYSERR_ALLOCATED. In de MSDN staat daarbij dat de resource is already allocated. Alle voorbeeldcode die ik heb gevonden gebruikt deze functie op precies dezelfde manier, dus snap ik niet wat er mis mee is.
Daarna heb ik gekeken of er wel een device aanwezig was dat WAVE support heeft met de waveOutGetNumDevs() functie. Daaruit blijkt dat er 1 device aanwezig is.
Als ik een wave file probeer af et spelen met de sndPlaySound() functie werkt het perfect, dus op een of andere manier gaat het openen dus niet goed.
Heeft iemand een idee waar de fout ligt?
Bij voorbaat dank,
Miep.