Mon wave ne sera pas joué en mode debug. Si j'appuie sur CTRL + F5, j'obtiens un bon WAV et la console écrit la position du curseur de fichier (buf.PlayPosition
) et la méthode se ferme quand le son est terminé. Sous debug (quand je viens de frapper F5) il n'y a pas de sortie audio, cependant la position du curseur de fichier est encore augmentée dans la fenêtre de la console et la méthode se termine sans exception.Pourquoi la mémoire tampon DirectSound ne fonctionne-t-elle pas dans les conditions de débogage?
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);
}
}
}
}
}
Des idées?
Quel est l'avantage d'utiliser un SecondaryBuffer plutôt qu'un Buffer? – gingerbreadboy