Dear all! I just tried the example code of the SDL Manual where you play some music. By the SDL manual, I refer to the one that is hidden at the bottom of the sdl.perl.org page, so that you really have to search for it in order to find it - and even then you have to get along with an ugly github interface.
The good news is, that it worked perfectly here on Win 7 x64. Thank you! The bad news is, that I don't have ogg or wav files, but mp3 files. And I have them in a database (please don't ask why and please don't propose to store them as files). So, in general: Is there a way to play mp3 files? And in particular: is there a way to play mp3 files that are in a variable? Or do I have to work with temporary files? Here is what I got so far: [code] #!perl use strict; use warnings; use SDL; use Carp; use SDL::Audio; use SDL::Mixer; use SDL::Mixer::Samples; use SDL::Mixer::Channels; use SDL::Mixer::Music; SDL::init(SDL_INIT_AUDIO); unless( SDL::Mixer::open_audio( 44100, AUDIO_S16SYS, 2, 4096 ) == 0 ) { Carp::croak "Cannot open audio: ".SDL::get_error(); } my $sound_file = 'data/ghostngoblins.mp3'; my $sample = SDL::Mixer::Samples::load_MUS($sound_file); unless( $sample) { Carp::croak "Cannot load file [$sound_file]: ".SDL::get_error(); } my $playing_channel = SDL::Mixer::Channels::play_channel( -1, $sample, 0 ); sleep(60); SDL::Mixer::Music::halt_music(); SDL::Mixer::close_audio; exit(0); [/code] However, this code dies with an error: "Use of inherited AUTOLOAD for non-method SDL::Mixer::Samples::load_MUS() is deprecated at yadayada\play_sdl.pl line 20.". The above code works fine when using an ogg file (using load_MUS()) or an wav file (load_WAV()). Please help :) Best regards, Alex