私は視覚障害者向けのオーディオゲームに取り組んでいる視覚障害者プログラマーです。私はSlimDXを使用しており、XPからWin 8.1までの数十のシステムでテストされています。私のコードはほとんどのシステムで問題なく機能しますが、少数の古いXPシステムでは実行時に次のエラーが発生します。
vupgraderacer.wav SlimDX.DirectSound.DirectSoundException:
DSERR_INVALIDCALL:この呼び出しは、このオブジェクトの現在の状態では無効です(-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)
同じエラーが、使用しようとするサウンドごとに繰り返されます。DSデバイスのセットアップに使用しているコードは次のとおりです。
dsDevice = New SlimDX.DirectSound.DirectSound
dsDevice.SetCooperativeLevel(OGw.Handle、SlimDX.DirectSound.CooperativeLevel.Normal)
設定できるフラグは他にもあることは承知していますが、この基本的な設定は、これまでのところ、古いXPシステムを除いてうまく機能しています。これは私の最初の投稿なので、正しく入力してほしいと思います。そうでない場合は、お知らせください。フォーラムのスクリーンリーダーを使用している場所やスクリーンリーダーを使用している場所を特定するのが難しい場合があります。
SetCooperativeLevel()
何ですか?問題を示す可能性があるHRESULT
値以外の値を返すので、DS_OK