Je suis un programmeur aveugle, je travaille sur un jeu audio pour les aveugles. J'utilise SlimDX, et il a été testé sur des dizaines de systèmes de XP à Win 8.1. Mon code fonctionne très bien sur la plupart des systèmes, mais j'obtiens l'erreur suivante au moment de l'exécution sur une poignée d'anciens systèmes XP:
vupgraderacer.wav SlimDX.DirectSound.DirectSoundException:
DSERR_INVALIDCALL: cet appel n'est pas valide pour l'état actuel de cet objet (-2005401550)
at SlimDX.Result.Throw[T](Object dataKey, Object dataValue) at SlimDX.Result.Record[T](Int32 hr, Boolean failed, Object dataKey, Object dataValue) at SlimDX.DirectSound.SecondarySoundBuffer..ctor(DirectSound device, SoundBufferDescription description) at RR.Sound..ctor(String fileName)
La même erreur se répète pour chaque son qu'il essaie d'utiliser. Voici le code que j'utilise pour configurer l'appareil DS:
dsDevice = Nouveau SlimDX.DirectSound.DirectSound
dsDevice.SetCooperativeLevel (OGw.Handle, SlimDX.DirectSound.CooperativeLevel.Normal)
Je me rends compte qu'il existe d'autres indicateurs qui peuvent être définis, mais cette configuration de base a bien fonctionné jusqu'à présent, moins les anciens systèmes XP. Ceci est mon premier message, alors j'espère que je le saisis correctement, sinon, faites-le moi savoir, il est parfois difficile de dire où vous êtes ou devriez être avec un lecteur d'écran sur les forums.
SetCooperativeLevel()
? Il renvoie une HRESULT
valeur donc toute autre que celle qui DS_OK
peut indiquer un problème.