我设法安装了 SDL 并将其集成到我的 Visual Studio 2017 项目 for 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;
}
当我在“资源文件”文件夹中将文件导入我的项目时,它变得复杂起来。不知道 Visual Studio,我想这是用于您想要使用的外部资源的文件夹(如果我错了,对不起)。
导入文件后,我无法弄清楚如何恢复它们的路径以将其提供给将访问要播放的音频文件的 SDL 函数 ( Mix_LoadMUS() )。
所以我想知道如何在 Visual Studio 项目中管理资源。