【发布时间】:2011-08-08 05:16:08
【问题描述】:
我正在使用DirectSound 框架和SecondaryBuffer 对象。我将SecondaryBuffer 对象包装在另一个类中,因为我有一些其他值要与我的SecondaryBuffer 关联。
播放完声音后,我想处理掉SecondaryBuffer,但是,查看它是否播放完成的唯一方法是检查它的状态。
我想创建一个event,当我的SecondaryBuffer 的状态为正确值时可以调用它。
这是包含我的包装类的 sn-p。
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 重新检查状态。
【问题讨论】:
标签: c# events delegates event-handling directsound