SDL Audio
-
Ich benutzte Code::Blocks mit mingw und hab versucht mit dem code der SDL-Dokumentation die funktion SDL_OpenAudio
zu benutzen nur leider ergibt sich die Fehlermeldung:
"error: invalid conversion from `void*' to `SDL_AudioSpec*'"
in den zeilen mit malloc. wo liegt der fehler?PS. Was die fehlermeldung mir sagen will verstehe ich schon aber wie kann man richtig mit SDL sounds abspielen?
/* Prototype of our callback function */ void my_audio_callback(void *userdata, Uint8 *stream, int len); /* Open the audio device */ SDL_AudioSpec *desired, *obtained; SDL_AudioSpec *hardware_spec; /* Allocate a desired SDL_AudioSpec */ desired = malloc(sizeof(SDL_AudioSpec)); /* Allocate space for the obtained SDL_AudioSpec */ obtained = malloc(sizeof(SDL_AudioSpec)); /* 22050Hz - FM Radio quality */ desired->freq=22050; /* 16-bit signed audio */ desired->format=AUDIO_S16LSB; /* Mono */ desired->channels=0; /* Large audio buffer reduces risk of dropouts but increases response time */ desired->samples=8192; /* Our callback function */ desired->callback=my_audio_callback; desired->userdata=NULL; /* Open the audio device */ if ( SDL_OpenAudio(desired, obtained) < 0 ){ fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); exit(-1); } /* desired spec is no longer needed */ free(desired); hardware_spec=obtained; . . /* Prepare callback for playing */ . . . /* Start playing */ SDL_PauseAudio(0);
-
Sieht fast so aus, als wäre die conversion von `void*' nach `SDL_AudioSpec*' irgendwie invalid.
Wenn du das behebst, müsste es gehen. f'`8k
Bye, TGGC (Das Eine, welches ist.)
-
Warum bist Du eigentlich nicht Fehlermeldungsübersetzter geworden?
-
Weil das weit unter meinem Skill ist. Seid dankbar für mein kostenloses Engagment.
Bye, TGGC (Das Eine, welches ist.)
-
*aufdieknieefallundvordirherrutsch*
-
Füge halt einen Cast ein:
desired = (SDL_AudioSpec*) malloc(sizeof(SDL_AudioSpec));
-
Danke Wolfgke zumindest spuckt er jetzt keine fehlermeldungen aus ich schau mal ob ich jetzt weiter komm