PlaySound en C émet des bips mais ne lit pas les fichiers wav

En C, mon PlaySound ne PlaySound aucune erreur … mais au lieu de jouer le fichier que je veux, il émet juste un bip.

Aucune suggestion?

J’ai essayé :

 PlaySound("song1.wav", NULL, SND_ALIAS | SND_APPLICATION); 

Et:

 PlaySound("song1.wav", NULL, SND_FILENAME); 

Mais j’ai le même résultat.

Au lieu d’utiliser un chemin relatif comme vous l’avez fait:

 PlaySound("song1.wav", NULL, SND_FILENAME); 

Utilisez un chemin absolu comme:

 PlaySound("F:\\path\\to\\your\\song\\song1.wav", NULL, SND_FILENAME); 

Extrait de la description de l’API PlaySound, à l’adresse msdn.microsoft.com:

PlaySound recherche les fichiers audio dans les répertoires suivants: le répertoire actuel; le répertoire Windows; le répertoire système Windows; répertoires répertoriés dans la variable d’environnement PATH ; et la liste des répertoires mappés dans un réseau.

Si la fonction ne trouve pas le son spécifié et que l’indicateur SND_NODEFAULT n’est pas spécifié, PlaySound utilise à la place le son de l’événement système par défaut (dans votre cas, le BEEP).

Si la fonction ne trouve ni l’entrée par défaut du système ni le son par défaut, elle n’émet aucun son et renvoie FALSE .

Ajoutez donc le chemin du répertoire de fichiers à la variable d’environnement PATH dans Windows. Cela devrait résoudre votre problème.

J’avais des problèmes avec la même situation que celle des OP et j’ai trouvé une solution pour moi. Ma solution élimine les métadonnées du fichier wav.

Post (japonais)

En se référant à la publication, l’API PlaySound () ne peut pas lire certains fichiers wav exportés avec le célèbre outil audio. (tels que ProTools, CUBASE, StudioOne, etc.)

Et en éliminant les métadonnées, cela fonctionne. dans un article de blog, il a ouvert un fichier wave «troublant» avec SoundEngine (japonais) et vient de «sauvegarder sous» un nouveau fichier pour éliminer les méta-informations wav RIFF.