Bonjour,
Avec Naudio, j’arrive à jouer un son venant d’un fichier en format Wave sans problème. Je crée mon signal au travers d’algorithmes de calcul. Pour tester, je l’enregistre dans un fichier Wave et je le reprends en boucle avec la fonction son(nom du fichier, loop). Le problème c’est que ce signal va sur une carte son dédiée. J’avais utilisé DirectSound mais hélas j’ai des incompatibilités avec certain ordinateur actuel. Je me penche donc vers la solution Naudio. Le problème c’est de faire une bonne fonction loop ou ce qui serait mieux c’est de lire directement dans un buffer sans passer par un fichier wav qui me pénalise au niveau du temps machine. J’arrive à lire un buffer sous 8 bits avec NAudio avec BufferedWaveProvider puis en faisant un AddSamples d'un tableau de bytes qui se renouvelle périodiquement avec un thread, mais je ne comprends pas comment créer un wavestream sous 16 bits qui puisse être lu par NAudio dans un buffer qui se renouvelle constamment pour simuler la fonction loop comme je le fais avec BufferedWaveProvider.AddSamples ou avec l'aide peut-être d'un CircularBuffer. Il y a bien des bouts de code en C mais je ne suis pas assez costaud en C pour comprendre d’autant que la retraduction en Windev n’est pas aisée.
Merci de votre aide.
Partager