Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:fmod [2008/08/17 16:39] alfred |
fw:fmod [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== FMOD ====== | ====== FMOD ====== | ||
| Para utilizarla debemos incluir en el código ''fmod.h'' y vincular ''fmodvc.lib'' (si usamos Visual Studio). | Para utilizarla debemos incluir en el código ''fmod.h'' y vincular ''fmodvc.lib'' (si usamos Visual Studio). | ||
| + | |||
| ===== Inicializar ===== | ===== Inicializar ===== | ||
| - | Antes de utilizar fmod debemos inicializar el sistema de sonido, para ello utilizamos ''FSOUND_Init''. | + | Antes de utilizar fmod debemos inicializar el sistema de sonido, para ello utilizamos **FSOUND_Init**. |
| <code cpp> | <code cpp> | ||
| FSOUND_Init(44100, 32, 0); | FSOUND_Init(44100, 32, 0); | ||
| </code> | </code> | ||
| + | - El primer parámetro es el ratio de salida, entre 4000hz y 65535hz. | ||
| + | - El segundo el número máximo de canales gestionados por software, el máximo gestionado por hardware lo podemos hacer haciendo una llamada a **FSOUND_GetMaxChannels**. | ||
| + | - El último son las flags, opciones que queramos pasarle. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== Reproducir sonidos ===== | ===== Reproducir sonidos ===== | ||
| + | Cuando queramos reproducir sonidos pequeños mediante ficheros (mp3, wav, ogg...) que se vayan a reproducir varias veces y que queramos cargar en memoria, utilizaremos la función **FSOUND_Sample_Load** para cargar el fichero en memoria y **FSOUND_PlaySound** (o **FSOUND_PlaySoundEx**) para reproducirlo. \\ | ||
| + | **FSOUND_Sample_Load** devuelve un puntero a un **FSOUND_SAMPLE** y recibe como parámetros: | ||
| + | - El indice de sonido, un int de valor 0 o mayor. Cada sonido debe tener un indice, si un indice vuelve a ser asignado el sonido se reemplaza. | ||
| + | - Ruta del archivo o puntero a los datos ya cargados en memoria. | ||
| + | - El modo, uno de los FSOUND_MODES, el más general es ''FSOUND_NORMAL''. | ||
| + | - Los dos siguientes pueden ser asignados a 0. | ||
| + | **FSOUND_PlaySound** únicamente recibe como parámetros el canal y el puntero al FSOUND_SAMPLE deseado. Si dos sonidos están en el mismo canal, cuando uno se reproduzca el otro quedará en silencio. Para reproducirlos a la vez han de estar en distintos canales. Aunque como canal podemos pasarle ''FSOUND_FREE'' que eligirá automáticamente uno libre. Retorna el número de canal asignado. \\ \\ | ||
| + | |||
| + | |||
| + | |||
| ===== Reproducir streams ===== | ===== Reproducir streams ===== | ||
| + | Primero deberemos abrir el stream mediante **FSOUND_Stream_Open** la cual recibe el nombre y el modo, el cual puede ser FSOUND_NORMAL, los otros dos argumentos pueden ser asignados a 0. \\ | ||
| + | Para reproducir un stream utilizaremos **FSOUND_Stream_Play** que recibe el canal y el FSOUND_STREAM creado por la anterior función, devuelve un int correspondiente al canal. | ||
| + | |||
| + | ===== General ===== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Asignar volumen ==== | ||
| + | Podemos asignar el volumen de un canal mediate **FSOUND_SetVolume**, esta función acepta un int, el número de canal, y un valor entre 0 y 255 correspondiente al volumen. \\ | ||
| + | Como canal podemos pasarle FSOUND_ALL y afectará a todos los canales. \\ | ||
| + | Si el canal no está en uso el volumen no se asignará. | ||
| + | |||
| + | |||
| + | |||
| + | ==== Crear un bucle ==== | ||
| + | Para ello utilizaremos FSOUND_SetLoopMode, indicando el canal y tipo de bucle (generalmente usaremos FSOUND_LOOP_NORMAL). | ||
| + | <code cpp> | ||
| + | FSOUND_SetLoopMode(ch, FSOUND_LOOP_NORMAL); | ||
| + | </code> | ||
| + | Para quitar el bucle lo llamaremos con FSOUND_LOOP_OFF. \\ | ||
| + | Si el canal no está en uso el bucle no se asignará. | ||
| + | |||
| + | ==== Pausar ==== | ||
| + | **FSOUND_SetPaused** recibe un canal y un bool, si es true el canal será pausado, si es false se reproducirá. | ||
| + | ==== Otros ==== | ||
| + | * Coger el ''FSOUND_SAMPLE'' de un canal mediante **FSOUND_GetCurrentSample**. | ||
| + | * **FSOUND_IsPlaying** retorna si un canal está sonando o no. | ||