Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* gcc -o sound sound.c $(pkg-config --cflags --libs SDL2_mixer sdl2)
- * loop=0 # 0 for once, -1 for infinity
- * clock=1 # optional, in ms, default is 1, lower means it detects when the sound ends quicker, higher means less CPU usage
- * ./sound $file $loops $clock &
- * audiopid=$!
- * kill $audiopid
- */
- #include <SDL.h>
- #include <SDL_mixer.h>
- #include <stdlib.h>
- int main (int argc, char *argv[])
- {
- if (argc < 3 || argc > 4)
- {
- fprintf(stderr, "usage ./sound $file $loop $clock # see source\n");
- exit(1);
- }
- if (Mix_OpenAudio(44100, AUDIO_S32SYS, 1, 4096))
- {
- fprintf(stderr, "SDL_Mixer Error: %s\n", Mix_GetError());
- exit(1);
- }
- Mix_Chunk* audio = Mix_LoadWAV(argv[1]);
- if (!audio)
- {
- fprintf(stderr, "SDL_mixer Error: %s\n", Mix_GetError());
- exit(1);
- }
- int channel = Mix_PlayChannel(-1, audio, atoi(argv[2]));
- while(Mix_Playing(-1))
- {
- if(argc==3)
- SDL_Delay(1);
- else
- SDL_Delay(atoll(argv[3]));
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement