Мне удалось установить SDL и интегрировать его в проект Visual Studio 2017 для Windows 10 .
Моя основная проблема - воспроизведение аудиофайлов. Действительно, когда я указываю абсолютный путь к аудиофайлу, все работает отлично.
#include "framework.h"
#include "Pokemon.h"
#include <iostream>
#include <SDL.h>
#include <SDL_mixer.h>
#define WAV_PATH "C:\\Users\\quent\\Documents\\Polytech\\Annee3\\projetPerso\\Sons\\musique.mp3" //WORK TOTALY FINE
#define WAV2_PATH ".\\Resource Files\\musique.mp3" //Mix_LoadMUS(WAV2_PATH) return NULL, so the file is not played
const int WIDTH = 800, HEIGHT = 600;
int main(int argc, char *argv[])
{
Mix_Music *wave = NULL;
Mix_Music *wave2 = NULL;
if (Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096) != 0) {
std::cout << "Impossible d'ouvrir mixer " << SDL_GetError() << std::endl;
return 1;
}
wave = Mix_LoadMUS(WAV2_PATH);
wave2 = Mix_LoadMUS(WAV2_PATH);
if (wave == NULL || wave2 == NULL) {
std::cout << "Impossible de chargé un fichier .ogg " << SDL_GetError() << std::endl;
return 2;
}
if (Mix_PlayMusic(wave, 1) != 0) {
std::cout << "Impossible de jouer le fichier " << SDL_GetError() << std::endl;
return 1;
}
SDL_Delay(5000);
if (Mix_PlayMusic(wave2, 1) != 0) {
std::cout << "Impossible de jouer le fichier " << SDL_GetError() << std::endl;
return 1;
}
while (Mix_PlayingMusic());
Mix_FreeMusic(wave);
Mix_FreeMusic(wave2);
SDL_DestroyWindow(window);
SDL_Quit();
return EXIT_SUCCESS;
}
Когда все это сложно, я импортирую файлы в свой проект в "Resource Files папка. Не зная Visual Studio, я представляю, что это папка для внешних ресурсов, которые вы хотели бы использовать (извините, если я ошибаюсь).
![all sound file are into Resources Files](https://i.stack.imgur.com/L2Sdl.png)
После того, как мои файлы импортированы, я не могу понять, как восстановить их путь, чтобы передать его функции SDL ( Mix_LoadMUS () ), которая будет обращаться к аудиофайлу играть.
Так что я хотел бы знать, как ресурсы управляются в проекте Visual Studio.