- 締切済み
DirectSoundの競合?
DirectSoundを使ってストリーミングで音を出すアプリを作成しています。 単独で動いている場合は問題ないのですが、他に音を出すアプリを動かすと、 動作がおかしくなる(音がプチプチ途切れる)場合があります。 場合がある、と言ってもランダムという訳ではなく、 動作がおかしくなるアプリとそうでないアプリがある、という事です。 また、この現象が起きている時は、 こちらの関数が呼ばれるタイミングや引数のバッファポインタの値が明らかに正常時とは異なっています。 他のアプリがDirectSoundを使うと競合で不具合が発生するのかと思い、Microsoftのページを見ましたが、 競合についての解説は見当たりませんでした。 競合だとしても、他のアプリの音が正常なのが謎ですが... 以上、不具合の解消に向けて皆様のお知恵を拝借致したく、質問させて頂きます。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Aruku-20030515
- ベストアンサー率23% (362/1544)
回答No.1
1.自作ソフトの設計が悪い 2.サウンドデバイスのCPU依存度が非常に高いものを使っている 3.処理の負荷が高い ではなかろうかと・・・・ 2,3をクリアーしているのなら、自作ソフト上の イベント処理関係を疑ってください。<つまり割り込み処理をうまく対処しているのか?ということ
補足
早速のご回答、ありがとうございます。 アプリのCPU負荷について書いておくべきでした。 5~10%と、非常に軽いです。 サウンドデバイスはSound○○○を使用しており(ここに出力)、 これのWavetableSynthが起動されると、プチプチになってしまいます。 その時のCPU負荷が計15~20%です。 MicrosoftのSynthなら起動されても問題は発生ないんですが... Aruku様のご回答から察すると、 DirectSound自体には「競合」という問題はないということですね? イベント処理に関しても、質問にも書いたように、呼ばれた時点で既に異常事態です。 困りました...