https://foro.gambas-es.org/viewtopic.php?f=17&t=3756&p=24955#p24955
-----------------------------------
vuott
Viernes, 06 Febrero 2015, 12:20

Re: [C] Ejecutar Un Archivo Wav O Midi Con La Librería De "Allegro"
-----------------------------------
Para ejecutar un fichero audio con la librería de "Allegro [b][color=#F20000]5[/color][/b]", es posible utilizar este simple codigo:

[code linenumbers=false syntax=C]#include <stdio>  
#include <allegro5/allegro.h>  
#include <allegro5/allegro_audio.h>  
#include <allegro5/allegro_acodec.h>  
  
  
int main(int argc, char *argv[]){  
  
  ALLEGRO_SAMPLE *sample = NULL;  
  unsigned int pos, frequenza;  
  
  
  if(!al_init()){  
     fprintf(stderr, "Impossible inicializar la libreria Allegro 5 !\n");  
     return -1;  
  }  
  
  if(!al_install_audio()){  
     fprintf(stderr, "Impossible inicializar el audio!\n");  
     return -1;  
  }  
  
  if(!al_init_acodec_addon()){  
     fprintf(stderr, "Impossible inicializar audio codecs !\n");  
     return -1;  
  }  
  
  if (!al_reserve_samples(1)){  
     fprintf(stderr, "Impossible reservar las muestras audio!\n");  
     return -1;  
  }  
  
  sample = al_load_sample(argv[1]);  
  
  if (!sample){  
     printf( "Archivo audio no cargado !\n" );   
     return -1;  
  }  
  
  frequenza = al_get_sample_frequency(sample);  
  printf("Frecuencia: Hz %d\n", frequenza);  
  
  pos = al_get_sample_length(sample);  
  
  printf("Duración: %.2f segundos\n", (float)pos / frequenza);  
  
  /* Ejecuta el fichero audio. */  
  al_play_sample(sample, 1.0, 0.0, 1.0, ALLEGRO_PLAYMODE_ONCE, NULL);  
  
  /* Permite ejecutar para toda la duración del archivo. */  
  al_rest(pos / frequenza);  
  
  al_destroy_sample(sample);  
  
  return 0;  
  
}[/code]
Este código debe ser compilado con la siguiente línea de comando:
[i][color=#BF0000]gcc -o /direccion/del/programa /direccion/del/programa.c -L/usr/local/lib -lallegro -lallegro_main -lallegro_audio -lallegro_acodec[/color][/i]


