DirectSoundフレームワークとSecondaryBufferオブジェクトを使用しています。SecondaryBufferに関連付けたい他の値があるため、オブジェクトを別のクラスでラップしていますSecondaryBuffer。
サウンドを再生した後、破棄したいのですが、SecondaryBuffer再生が完了したかどうかを確認する唯一の方法は、ステータスを確認することです。
event自分のステータスがSecondaryBuffer正しい値のときに呼び出すことができるを作成したいと思います。
これが私のラップされたクラスを含むスニペットです。
public class WrappedBuffer
{
public SecondaryBuffer Buffer { get; set; }
//other variables here
public WrappedBuffer(SecondaryBuffer buffer, ... and more)
{
this.Buffer = buffer;
}
}
イベントがない場合は、を利用してTimerこのようにステータスを確認する必要があります。
if (!Buffer.Status.Playing)
{
Buffer.Dispose();
}
とにかく、ステータスを。eventsで再チェックすることなく、SecondaryBufferオブジェクトのDispose()メソッドを呼び出すために使用できるものはありますか?Timer