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_OKpeut indiquer un problème.