Ich habe jetzt für das Konsolenfenster ein einfaches Test-Programm geschrieben, bei dem ich mit die Sound-Ausgabe mit dem SDL Mixer ausprbieren möchte. Dazu soll eine MP3 abgespielt werden. Problem: Das funktioniert nicht
Ich habe die SDL (und Mixer) Includedateien zu den Includeverzeichnissen, die Libs zu den Bibliotheksverzeichnissen und die SDL.lib, SDLmain.lib, SDL_mixer.lib zu den "Zusätzlichen Abhängigkeiten" hinzugefügt.
Das Programm lässt sich auch ohne Fehler/Warnungen kompilieren, aber in der CMD werden die Fehler
Mix_LoadMUS: Couldn't open 'music.mp3'
Mix_PlayMusic: music parameter was NULL
angezeigt
Die .dll-Dateien sind auch im Debug verzeichnis und die music.mp3 auch.
Danke für die Hilfe.
Der Sourcecode:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#include <iostream>
#include <SDL.h>
#include <SDL_mixer.h>
int main (int argc, char *argv[])
{
// Mix_Init
//
// Mix_Init for MP3 sample/music format
int flags=MIX_INIT_MP3;//MIX_INIT_OGG|MIX_INIT_MOD;
int initted=Mix_Init(flags);
if(initted&flags != flags) {
printf("Mix_Init: %s\n", Mix_GetError());
// handle error
}
// Mix_OpenAudio
//
// print music decoders available
int i,max=Mix_GetNumMusicDecoders();
for(i=0; i<max; ++i)
printf("Music decoder %d is for %s",Mix_GetMusicDecoder(i));
// start SDL with audio support
if(SDL_Init(SDL_INIT_AUDIO)==-1) {
printf("SDL_Init: %s\n", SDL_GetError());
exit(1);
}
// open 44.1KHz, signed 16bit, system byte order,
// stereo audio, using 1024 byte chunks
if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1) {
printf("Mix_OpenAudio: %s\n", Mix_GetError());
exit(2);
}
// load the MP3 file "music.mp3" to play as music
// char pfad[MAX_PATH] = "F:\\Medien\\Programmieren\\C++\\Eigene Projekte\\Test undso\\music.mp3";
Mix_Music *music;
music=Mix_LoadMUS("music.mp3");
if(!music) {
printf("Mix_LoadMUS: %s\n", Mix_GetError());
// this might be a critical error...
}
// play music forever
if(Mix_PlayMusic(music, -1)==-1) {
printf("Mix_PlayMusic: %s\n", Mix_GetError());
// well, there’s no music, but most games don’t break without music...
}
system("Pause");
return 0;
}
|