代码之家  ›  专栏  ›  技术社区  ›  Jack Wetherell

SDL混音器声音未播放

  •  0
  • Jack Wetherell  · 技术社区  · 12 年前

    我正在使用SDL制作一个游戏,但我的SoundHandler类不起作用,我不知道为什么。文件路径是绝对正确的,我已经正确设置了SDL_Mixer,因为我以前有正确的声音工作,我也没有收到错误或警告,游戏运行良好,只是没有音乐。

    声音处理程序.h:

    enum Sounds
    {
        BACKGROUND_MUSIC, STICK_COLLECT
    };
    
    class SoundHandler
    {
        public:
            SoundHandler();
            void PlaySound(Sounds sound);
        private:
            Mix_Music *backMusic;
            Mix_Music *stickCollect;
    };
    

    声音处理程序.cpp:

    SoundHandler::SoundHandler()
    {
        Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096);
        this->backMusic = Mix_LoadMUS("Data//Music//Background.mp3");
        this->stickCollect = Mix_LoadMUS("Data//Sounds//StickCollect.mp3");
        Mix_VolumeMusic(128);
    }
    
    void SoundHandler::PlaySound(Sounds sound)
    {
        if(sound == BACKGROUND_MUSIC)
        {
            Mix_PlayMusic(this->backMusic, -1);
        }
        if(sound == STICK_COLLECT)
        {
            Mix_PlayMusic(this->stickCollect, 1);
        }
    }
    

    main.cpp中的相关行:

    // Initialise Sound
    SoundHandler soundHandler;
    
    // Play Background Music
    soundHandler.PlaySound(BACKGROUND_MUSIC);
    
    // Play Sound
    soundHandler.PlaySound(STICK_COLLECT);
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   Dmitry Poroh    12 年前

    我认为问题在于文件路径中的双斜杠,请尝试使用单斜杠。

    在没有错误检查的情况下,您将有很长时间的调试。