디버깅 중에는 웨이브가 재생되지 않습니다. CTRL + F5를 누르면 멋진 WAV가 나오고 Console은 파일 커서 위치 (buf.PlayPosition
)를 기록한 다음 사운드가 끝나면 종료합니다. (필자가 F5를 누르면) 오디오 출력은 없지만 콘솔 커서에서 파일 커서 위치가 여전히 증가하고 메서드가 예외없이 종료됩니다.디버그 조건에서 DirectSound 버퍼가 재생되지 않는 이유는 무엇입니까?
using Microsoft.DirectX.DirectSound;
public void Play()
{
var fileName = "bass.wav";
using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
using (var dev = new Device())
{
dev.SetCooperativeLevel(this, CooperativeLevel.Priority);
using (Buffer buf = new Buffer(stream, dev))
{
buf.Volume = 0;
buf.Play(0, BufferPlayFlags.Default);
while (buf.Status.Playing)
{
System.Console.WriteLine("playing " + buf.PlayPosition);
}
}
}
}
}
아이디어가 있으십니까?
버퍼를 사용하는 것보다 SecondaryBuffer를 사용하면 어떤 이점이 있습니까? – gingerbreadboy