Я использую DirectSound
framework и 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
для вызова метода Dispose () объекта SecondaryBuffer без необходимости перепроверки состояния с помощью Timer
.