DirectSoundでFormがActiveでない時も音を出す
DirectSoundのSecondaryBufferにwaveのbyte配列を書き込んで音を出しているんだけど
DirectSoundのDeviceの持ち主として関連づけられているControl(この場合はSystem.Windows.Formのインスタンス)からフォーカスが外れると音が止まってしまった。
GlobalFocusにするとよい。
SecondaryBufferにアクセスするためのBufferDescriptionで
description.GlobalFocus = true;
してから
SecondaryBuffer buffer = new SecondaryBuffer(description, device); buffer.Write(0, bytes, LockFlag.None); buffer.Play(0, BufferPlayFlags.Default);
とすると、Formがアクティブじゃなくても音が鳴り続ける。
参考: