J'écris un programme en C++ qui utilise la bibliothèque ncurses et qui joue aussi des effets sonores. Pendant que la compilation compile, il n'y a pas de son.ncurses + SLD2 et SDL2_Mixer: Pas de son lors de la tentative de lecture mp3
J'ai installé et ajouté les frameworks SDL2 et SDL2_Mixer à mon projet IDE (j'utilise Xcode). J'ai également ajouté le fichier mp3 dans le même répertoire que mes autres fichiers de projet. Voici mon code:
#include <SDL2/SDL.h>
#include <SDL2_Mixer/SDL_Mixer.h>
#if defined(WIN32)
#include "curses.h"
#else
#include <curses.h>
#endif
...
int main(int argc, char * argv[]) {
Mix_Music *music;
// Initialize music.
if (SDL_Init(SDL_INIT_AUDIO) < 0) {
fprintf(stderr, "unable to initialize SDL\n");
exit(EXIT_FAILURE);
}
if (Mix_Init(MIX_INIT_MP3) != MIX_INIT_MP3) {
fprintf(stderr, "unable to initialize SDL_mixer\n");
exit(EXIT_FAILURE);
}
if (Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 1024) != 0) {
fprintf(stderr, "unable to initialize audio\n");
exit(EXIT_FAILURE);
}
Mix_AllocateChannels(1); // only need background music
music = Mix_LoadMUS("sound.mp3");
if (music) {
Mix_PlayMusic(music, -1);
}
...
Mix_HaltMusic();
Mix_FreeMusic(music);
Mix_CloseAudio();
Mix_Quit();
return 0;
}
La construction compile avec succès, je vais au terminal et ouvrir mon projet, puis ... pas de son !? Qu'est-ce que je fais mal?
Mise à jour: il semble que mon fichier « son.mp3 » ne se charge pas correctement. Peut-être que je ne le référence pas correctement dans mon principal()? Il se trouve dans le même répertoire que les autres fichiers du projet. – shopofolive
Qu'est-ce que 'SDL_GetError' vous dit? Peu importe si le fichier se trouve dans le répertoire 'same', le processus a son 'répertoire de travail actuel' et les chemins relatifs sont résolus par rapport à celui-ci. Si vous n'avez pas changé de répertoire de travail, il est passé par le processus parent. Vous pouvez le vérifier avec [getcwd] (https://linux.die.net/man/3/getcwd) si vous n'êtes pas sûr. – keltar
Merci, keltar. SDL_GetError me dit: "Impossible d'ouvrir 'sound.mp3'." Après avoir fait une requête getcwd, cela m'indique que mon répertoire de travail est:/private/tmp. (Puisque je cours ncurses, j'ai dû allouer un répertoire temporaire pour la construction du projet, et ce répertoire est:/tmp.) N'importe quelle idée quel est le problème? Peut-être que c'est juste ne pas reconnaître le fichier ?? – shopofolive