SDL_mixer.h

Función Mix_Init

Sintaxis

int Mix_Init(int flags);

Descripción

Inicializa la librería SDL_mixer.

Parámetros

flags
Banderas de inicialización, combinadas con OR.

Valor de retorno

Devuelve todas las banderas inicializadas actualmente.

Observaciones

Esta función carga las bibliotecas dinámicas que SDL_mixer necesita y las prepara para su uso.

Hay que tener en cuenta que, a diferencia de otras bibliotecas SDL, esta llamada es opcional. Si carga un archivo de música, SDL_mixer se encargará de la inicialización sobre la marcha. Esta función le permitirá saber, por adelantado, si un formato específico estará disponible para su uso.

Las banderas deben ser una o más banderas de MIX_InitFlags combinadas con OR. Devuelve las banderas inicializadas con éxito, o 0 en caso de fallo.

Actualmente, estas banderas son:

  • MIX_INIT_FLAC
  • MIX_INIT_MOD
  • MIX_INIT_MP3
  • MIX_INIT_OGG
  • MIX_INIT_MID
  • MIX_INIT_OPUS
  • MIX_INIT_WAVPACK

Es posible que se añadan más banderas en una futura versión de SDL_mixer.

Esta función puede necesitar cargar bibliotecas compartidas externas para soportar varios códecs, lo que significa que esta función puede fallar al inicializar ese soporte en un sistema razonable si la biblioteca no está disponible; esto no es sólo una cuestión de circunstancias excepcionales como quedarse sin memoria al inicio.

Hay que tener en cuenta que se puede llamar a esta función más de una vez para inicializar con banderas adicionales. El valor de retorno reflejará tanto las nuevas banderas que se inicializaron con éxito, como también las banderas que habían sido inicializadas previamente.

Como esta función devolverá las banderas previamente inicializadas, es legal llamarla con cero (sin banderas). Se trata de un no-op seguro que puede utilizarse para consultar el estado de inicialización actual sin cambiarlo en absoluto.

Dado que devuelve tanto las banderas previamente inicializadas como las nuevas, y que se puede llamar con cero, no se debe comprobar un valor de retorno cero para determinar una condición de error. En su lugar, se debe comprobar que todas las banderas que necesita se establecen en el valor de retorno. Si se tiene un juego con datos en un formato específico, esto podría ser un error fatal. Si se trata de un reproductor multimedia genérico, quizás pueda parecer bien tener sólo soporte para WAV y MP3 y se puede vivir sin la reproducción de Opus, aunque se solicite soporte para todo.

A diferencia de otras librerías satélite de SDL, las llamadas a Mix_Init no se apilan; una sola llamada a Mix_Quit() desinicializará todo y no tiene que estar emparejada con una llamada Mix_Init correspondiente. Por esta razón, se consideran las mejores prácticas tener una única llamada a Mix_Init y Mix_Quit() en el programa. Si bien esto no es obligatorio, hay que tener en cuenta los riesgos de desviarse de ese comportamiento.

Después de inicializar SDL_mixer, el siguiente paso es abrir un dispositivo de audio para prepararse para reproducir sonido (con Mix_OpenAudio() o Mix_OpenAudioDevice()), y cargar datos de audio para reproducir con ese dispositivo.