I want to write a simple console music player, which supports both .mp3 and .wav audio formats. Playing .wav files with SDL_mixer lowers the quality of the sound, but with mp3 files it does not. When the .wav file starts playing there is a continuous "cracking" sound, the rest is fine tho.
I already checked if it is the wav file itself or a similar problem, but it doesn't matter which file I use, it ends up always the same. I also tried changing values in the Mix_OpenAudio function, the frequency and chunksize for example.
I've tried too to play the sound without SDL_mixer, but with SDL_OpenAudio etc... result is the same, MP3 is fine WAVE not.
It's not my computer, with vlc or rythmbox (audio player) .wav files play with no problem.
#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>
using namespace std;
int main()
{
// Music which will be played
Mix_Music* Music = NULL;
// Init
//
// Init SDL Audio
SDL_Init(SDL_INIT_AUDIO);
// Init SDL_mixer
Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 512);
// Load the files
//
// Load the music
Music = Mix_LoadMUS("Star Trek - Deep Space Nine.mp3");
// Play the music
Mix_PlayMusic(Music, 1);
while (Mix_PlayingMusic() == 1)
{
}
// clean up
//
// free the music
Mix_FreeMusic(Music);
// Quit Mixer
Mix_CloseAudio();
// Quit SDL
SDL_Quit();
return 0;
}
I'm getting no error message or anything.
Here is the file.
So I tried the same with Windows now, it worked there without problems, so this might be an compiler issue or I don't know. Very strange. I'll leave it like it is and do .mp3 only.