2

次のサウンド読み込み機能があります。

bool Sound::load(const char* fileName)
{
    sound = Mix_LoadWAV(fileName);
    if (sound == nullptr)
    {
        std::cout << "Failed to load sound at path: " << fileName << "SDL_mixer error: " << Mix_GetError();
        return false;
    }

return true;
}

Dev-C++ では、これでうまくいきます。別の IDE を使用したかったので、Visual Studio 2017 を使い始め、SDL2 を構成しました。ただし、このコードを実行すると、Mix_LoadWAV が呼び出された瞬間から、Visual Studio は次のようになります: https://imgur.com/a/STnXx

私はインターネットでたくさん検索しましたが、私にとって役立つものは何も見つかりませんでした.

編集: リクエストに応じて、同じエラーが発生する最小限の例を作成しました。

#include "SDL2\SDL_mixer.h"
#include "SDL2\SDL.h"

#include <iostream>

#undef main

class SoundTest
{
private:
Mix_Chunk* sound = nullptr;
public:
bool load(const char* fileName)
{
    sound = Mix_LoadWAV(fileName);

    if (sound == nullptr)
    {
        std::cout << "Failed to load sound at path: " << fileName << "SDL_mixer error: " << Mix_GetError();
        return false;
    }

    return true;
}
};

SDL_Window *window = nullptr;

int main(int argc, char** argv)
{
    SDL_Init(SDL_INIT_EVERYTHING);

    window = SDL_CreateWindow("Sound bug? ", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 300, 300, SDL_WINDOW_SHOWN);

    Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 2048);

    SoundTest sound;
    sound.load("audio/soundEffect.wav");
    while (true)
    {
        //Do fun stuff with the sound
    }

    return 0;
}
4

0 に答える 0