Aloitteleva c++ ja muutenkin SDL käyttäjä tiedustelee voiko kyseilsellä jutulla soittaa MP3 musaa ja jos voi miten sen voi toteuttaa, vai pitääkö kuvioihin ottaa jotenkin windowsin media playeri? Vai eikö yksinkertaisesti (suoraan) SDL 1.2 & 2.0 verssuilla voi soittaa MP3:sia.
Harrastan ohjelmointia VS2010 verssulla.
Jaa kuten esimerkissä ilmenee, wavien soitto ei ole ongelma...hami vaan että tuollasen 3-4 minuutin Mp3 kappaleen muutto wavix vie aikasta paljon tilaa kovolta.
#include <iostream> #include <SDL.h> #include <SDL_mixer.h> using namespace std; int main(int argc, char* args[]) { SDL_Init(SDL_INIT_AUDIO); //Mix_VolumeMusic(100); Mix_Music *soita_musa; Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096); soita_musa = Mix_LoadMUS("musa.wav"); if (soita_musa == 0) cout << "Mix_LoadMuS ERROR: " << Mix_GetError() << endl; else cout << "Mix_LoadMus SUCCESS" << endl; // Alota soittaminen if (Mix_PlayMusic(soita_musa, 1)!=0) cout << "Mix_PlayMusic ERROR: " << Mix_GetError() << endl; else cout << "Mix_PlayMusic SUCCESS" << endl; // Soitetaan kokomusiikki eikä vaan delayn verran. while (Mix_PlayingMusic()){ SDL_Delay(1000); } // Vapautetaan muistia Mix_FreeMusic(soita_musa); Mix_CloseAudio(); SDL_Quit(); return 0; }
Sekunnin nettihaku vihjaisi, että jos SMPEG on asennettuna, MP3 soi kyllä ihan kivasti.
MP3:n tilalle suosittelen kyllä Ogg Vorbis -muotoa. Se toimii myös SDL_mixerillä, sen kanssa ei taatusti ole patenttiongelmia, ja sen äänenlaatu (tai pakkaus) on selvästi parempi: jopa 64 kbps on usein riittävä pelimusiikkeihin.
Metabolix kirjoitti:
sen kanssa ei taatusti ole patenttiongelmia
Kuka tämän siis takaa?
http://en.wikipedia.org/wiki/Vorbis:
The Xiph.Org Foundation has not released an official statement on the patent status of Vorbis, pointing out that such a statement is technically impossible due to the number and scope of patents in existence and the questionable validity of many of them. Such issues cannot be resolved outside of a court of law.
Laadun tai pakkauksen kannalta parempi vaihtoehto on Opus.
SDL_mixer ei kuitenkaan osaa purkaa Opusta, ja taustamusiikkien kannalta Opus ja Vorbis ovat laadultaan jo hyvin lähellä toisiaan (ja kummatkin selvästi parempia kuin MP3).
Aihe on jo aika vanha, joten et voi enää vastata siihen.