2016-06-26 1 views
0

Première question, désolé si je ne fais pas quelque chose correctement: S. J'essaye de boucler une piste audio d'arrière-plan pendant qu'un jeu créé dans la fenêtre de console est joué. Cela fait partie d'un projet de groupe. Le jeu fonctionne bien mais je ne peux tout simplement pas obtenir la piste audio à jouer en utilisant la fonction PlaySound(). C'est un programme de test que j'ai fait pour essayer de comprendre le problème.La fonction PlaySound() ne lit pas le son

#include <iostream> 
#include <windows.h> 
#include <mmsystem.h> 

using namespace std; 

int main() 
{ 

    PlaySound(TEXT("D:\\CodeBlocks:\\Programming Work:\\SoundTest:\\castor.wav"), NULL, SND_FILENAME|SND_ASYNC|SND_LOOP); 
    if(PlaySound(TEXT("D:\\CodeBlocks:\\Programming Work:\\SoundTest:\\castor.wav"), NULL, SND_FILENAME|SND_ASYNC|SND_LOOP)) 
    { 
     cout << "It's Working." << endl; 
    } 
    else 
    { 
     cout << "It's not working." << endl; 
    } 
    cout << "Hello world!" << endl; 

    return 0; 
} 

Mon cas de test retourne vrai (ou « Il travaille. »), Et quand je l'ai essayé dans le laboratoire informatique de l'école, il serait boucle les fenêtres par défaut de tonalité d'erreur, qui joue lorsque la fonction ne peut pas trouver le fichier que vous avez spécifié, même si je lui ai donné le chemin complet du fichier. Je ne peux pas comprendre pourquoi il ne peut pas trouver le fichier, j'ai quadruple vérifié qu'il est en fait situé où j'ai écrit le chemin du fichier, et il semble toujours incapable de le trouver. J'ai essayé d'utiliser les formats .mp3 et .wav pour le fichier audio. Quelqu'un sait ce qu'il se passe? (note: L'éditeur de liens doit être donné la bibliothèque Winmm pour cela)

+2

Vous ne devriez pas mettre deux-points après chaque dossier, je , e, 'D: \\ CodeBlocks \\ travail de programmation \\ SoundTest \\ castor.wav' – Rakete1111

Répondre

-1

Essayez d'utiliser le style de chemin comme ceci:

"D:/CodeBlocks:/Programming Work:/SoundTest:/castor.wav"

Utilisez comme ceci tous pour vos chemins et cela devrait fonctionner.

+0

Vous avez introduit une nouvelle syntaxe de problème (ou au moins non idiomatique) en passant aux barres obliques sans raison, tandis que ne résolvant pas le problème _actual_, qui est tous les deux-points superflus. –

0

Merci les gars, j'ai trouvé le réel problème, ce n'était même pas le code tout au long. Il s'avère que mon fichier audio (castor.wav) n'était pas réellement au format wav, ce qui est requis par la fonction PlaySound(), même si l'ordinateur me disait que c'était .wav (Même quand j'ai montré les propriétés du fichier, dit qu'il était au format wav). C'est parce que j'ai essayé de le convertir d'un .mp3 en changeant simplement .mp3 en .wav, aurait dû savoir mieux. Après avoir utilisé un programme de conversion réel (et en supprimant le chemin de fichier exact et en lui donnant simplement TEXT ("castor.wav") cela fonctionne comme un charme.Merci pour l'aide!