Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Mix_LoadMUS ja MP3

Blakkisguru [25.02.2014 14:07:06]

#

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;
}

feenix [25.02.2014 14:15:27]

#

Sekunnin nettihaku vihjaisi, että jos SMPEG on asennettuna, MP3 soi kyllä ihan kivasti.

Metabolix [25.02.2014 15:41:39]

#

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.

Grez [26.02.2014 10:09:32]

#

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.

jcd3nton [07.03.2014 22:21:47]

#

Laadun tai pakkauksen kannalta parempi vaihtoehto on Opus.

Metabolix [07.03.2014 22:27:29]

#

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).

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta