Archivo de audio en C

Iniciado por Baal_30, 19 Julio 2014, 12:07 PM

0 Miembros y 1 Visitante están viendo este tema.

Baal_30

Buenas, hace nada hice una "alarma" en C, con temporizador. El post está por aquí ya que necesité ayuda. Ahora, me gustaría que cuando sonara, en vez del pitido ("\a"), sonase una canción o un archivo de audio que yo quiera, supongo que se podrá, y pediría que alguien me guiase un pelín o me de alguna ayuda sobre el tema.

Gracias de antemano.
«La suerte es el cuidado de los detalles». -Winston Churchill

leosansan

Cita de: Baal_30 en 19 Julio 2014, 12:07 PM
Buenas, hace nada hice una "alarma" en C, con temporizador. El post está por aquí ya que necesité ayuda. Ahora, me gustaría que cuando sonara, en vez del pitido ("\a"), sonase una canción o un archivo de audio que yo quiera, supongo que se podrá, y pediría que alguien me guiase un pelín o me de alguna ayuda sobre el tema.

Gracias de antemano.

Una forma simple sería:

Código (cpp) [Seleccionar]
system("MiCancion.mp3");

si está en la misma carpeta, si no tendrás que especificar la ruta, algo como

Código (cpp) [Seleccionar]
system("C:\\carpeta\\OtraCarpeta\\MiCancion.mp3");

¡¡¡¡ Saluditos! ..... !!!!



daryo

#2
que sistema operativo? si es windows te puedo ayudar

CitarUna forma simple sería:

esa es la mas simple pero no es la mejor xD
buenas

ivancea96

Tienes la opción de utilizar una librería que simplifique el tema, como por ejemplo SFML.

Baal_30

#4
Umm, esa forma simple parece muy simple, como funcione que bien :P

Sí, estoy en windows ¡! ¿Alguna otra forma más correcta? (Por lo que he leído la de system no parece la mejor, pero si sencilla)

Edito: Va genial, pero, ¿no se puede abrir el archivo con C, verdad? O sea, lo que hace system, es abrir el archivo con el reproductor de windows, para que se abriera en mi programa, tendría que crear yo un reproductor de audio, ¿me equivoco?

Gracias
«La suerte es el cuidado de los detalles». -Winston Churchill

leosansan

Cita de: Baal_30 en 19 Julio 2014, 16:59 PM
..........................................
Edito: Va genial, pero, ¿no se puede abrir el archivo con C, verdad? O sea, lo que hace system, es abrir el archivo con el reproductor de windows, para que se abriera en mi programa, tendría que crear yo un reproductor de audio, ¿me equivoco?
...................................
.

Antes que nada, me alegro que lo simple te funcione bien.

Conste que yo dije que era  un método sencillo, no el mejor. Pero sin usar las API de Windows ni librerías externas no se puede pedir más. Y si no, aquí estamos todos para aprender cosas nuevas.

Y sí, el archivo se abre con el reproductor que se corresponda con, en este caso, .mp3. Lo otro sería "crear" un reproductor y eso me suena a palabras mayores.

¡¡¡¡ Saluditos! ..... !!!!



Baal_30

De acuerdo ^^ Y con API de windows o alguna librería externa, como iría el tema¿?

«La suerte es el cuidado de los detalles». -Winston Churchill

daryo

#7
CitarLo otro sería "crear" un reproductor
en realidad winapi y otras librerias tienen las herramientas para que eso no sea necesario aun asi hacer un reproductor con SFML por ejemplo tampoco seria tan complicado

Citarcon API de windows
ok en eso te puedo ayudar asi se reproduce dentro del mismo ejecutable

el archivo tiene que ser wav en todo caso hay programas para cambiar el formato con este metodo tienes la ventaja de que no necesitaras archivos externos todo queda dentro del ejecutable.
suponiendo que trabajas en code blocks creas un proyecto:

luego dentro del proyecto en el menu project -> build options -> linker setings -> add

seleccionas el archivo c:\program files\codeblocks\mingw\lib\libwinmm.a la direccion varia dependiendo la carpeta de instalacion de code blocks.

te sale una ventana le das que no y luego ok a todo

en el main pon esto:
para que todo quede en el mismo exe:

#include <windows.h>
#include "res.h"


int main()
{
   PlaySound(MAKEINTRESOURCE(SONIDO),NULL,SND_RESOURCE);
   return 0;
}


creamos un archivo llamado res.h en code blocks es asi: dentro del proyecto file -> new -> file -> c/c++ header . dentro del archivo pones:

res.h

#define SONIDO 100


y por ultimo creamos un tercer archivo file ->new->empty file
el archivo se debe llamar res.rc y dentro del mismo ponemos el nombre y la ubicacion del wav en mi caso "sonido.wav"

res.rc
#include "res.h"
SONIDO WAVE "sonido.wav"

buenas

Baal_30

Bien explicado, lo malo es que yo uso Dev++, y estoy mirando en "proyecto" pero no me deja escoger ninguna opción :/
«La suerte es el cuidado de los detalles». -Winston Churchill

daryo

en dev creo que era era Tools->project options-> parameters y ahi  pones -lwinmm
en todo caso dev ya esta algo anticuado
buenas