Caractéristiques - Exemples - Bâtiment - Documentation - Platforms pris en charge - Licence
Minidio est écrit en C sans dépendances, sauf la bibliothèque standard et doit compiler propre sur tous les principaux compilateurs sans avoir à installer des packages de développement supplémentaires. Toutes les principales plateformes de bureau et mobiles sont prises en charge.
Reportez-vous au manuel de programmation pour une description plus complète des fonctionnalités disponibles dans Minidio.
Cet exemple montre une façon de jouer un son en utilisant l'API de haut niveau.
#define MINIAUDIO_IMPLEMENTATION
#include "miniaudio.h"
#include <stdio.h>
int main ()
{
ma_result result ;
ma_engine engine ;
result = ma_engine_init ( NULL , & engine );
if ( result != MA_SUCCESS ) {
return -1 ;
}
ma_engine_play_sound ( & engine , "sound.wav" , NULL );
printf ( "Press Enter to quit..." );
getchar ();
ma_engine_uninit ( & engine );
return 0 ;
}Cet exemple montre comment décoder et lire un son en utilisant l'API de bas niveau.
#define MINIAUDIO_IMPLEMENTATION
#include "miniaudio.h"
#include <stdio.h>
void data_callback ( ma_device * pDevice , void * pOutput , const void * pInput , ma_uint32 frameCount )
{
ma_decoder * pDecoder = ( ma_decoder * ) pDevice -> pUserData ;
if ( pDecoder == NULL ) {
return ;
}
ma_decoder_read_pcm_frames ( pDecoder , pOutput , frameCount , NULL );
( void ) pInput ;
}
int main ( int argc , char * * argv )
{
ma_result result ;
ma_decoder decoder ;
ma_device_config deviceConfig ;
ma_device device ;
if ( argc < 2 ) {
printf ( "No input file.n" );
return -1 ;
}
result = ma_decoder_init_file ( argv [ 1 ], NULL , & decoder );
if ( result != MA_SUCCESS ) {
return -2 ;
}
deviceConfig = ma_device_config_init ( ma_device_type_playback );
deviceConfig . playback . format = decoder . outputFormat ;
deviceConfig . playback . channels = decoder . outputChannels ;
deviceConfig . sampleRate = decoder . outputSampleRate ;
deviceConfig . dataCallback = data_callback ;
deviceConfig . pUserData = & decoder ;
if ( ma_device_init ( NULL , & deviceConfig , & device ) != MA_SUCCESS ) {
printf ( "Failed to open playback device.n" );
ma_decoder_uninit ( & decoder );
return -3 ;
}
if ( ma_device_start ( & device ) != MA_SUCCESS ) {
printf ( "Failed to start playback device.n" );
ma_device_uninit ( & device );
ma_decoder_uninit ( & decoder );
return -4 ;
}
printf ( "Press Enter to quit..." );
getchar ();
ma_device_uninit ( & device );
ma_decoder_uninit ( & decoder );
return 0 ;
}Plus d'exemples peuvent être trouvés dans le dossier Exemples ou en ligne ici: https://miniaud.io/docs/examples/
Effectuez ce qui suit dans un fichier source:
#define MINIAUDIO_IMPLEMENTATION
#include "miniaudio.h" Ensuite, compilez simplement. Il n'est pas nécessaire d'installer des dépendances. Sur Windows et MacOS, il n'est pas nécessaire de créer un lien vers quoi que ce soit. Sur linux, lien, lien vers -lpthread , -lm et -ldl . Sur BSD, liez simplement -lpthread et -lm . Sur iOS, vous devez compiler comme objectif-c.
Si vous obtenez des erreurs sur les références non définies à __sync_val_compare_and_swap_8 , __atomic_load_8 , etc. Vous devez vous connecter avec -latomic .
Si vous préférez les fichiers .h et .c séparés, vous pouvez trouver une version divisée de MiniIdio dans le dossier extras / mini-jeu_split. De là, vous pouvez utiliser MiniIdio comme bibliothèque .c et .h traditionnelle - Ajoutez simplement MiniIdio.C à votre arborescence source comme tout autre fichier source et incluez MiniIdio.h comme un en-tête normal. Si vous préférez la compilation en une seule unité de traduction (AKA Unity Builds), vous pouvez simplement #inclure le fichier .c dans votre fichier source principal:
#include "miniaudio.c"Notez que la version divisée est générée automatiquement à l'aide d'un outil et est basée sur le fichier principal du répertoire racine. Si vous souhaitez contribuer, veuillez apporter le changement dans le fichier principal.
La compatibilité ABI n'est pas garantie entre les versions, alors faites attention si la compilation en DLL / SO. Le moyen suggéré d'intégrer Minidio est de l'ajouter directement à votre arbre source.
La documentation en ligne peut être trouvée ici: https://miniaud.io/docs/
La documentation peut également être trouvée en haut de MiniIdio.h qui est toujours la source d'informations la plus à jour et la plus autoritaire sur la façon d'utiliser Miniodio. Toutes les autres documents sont générés à partir de cette documentation en code.
Minidio devrait compiler propre sur d'autres plates-formes, mais elle n'inclura aucune prise en charge de la lecture ou de la capture par défaut. Pour soutenir cela, vous devrez implémenter un backend personnalisé. Vous pouvez le faire sans avoir besoin de modifier le code source MiniIdio. Voir l'exemple CUSTOM_BACKEND.
Votre choix de domaine public ou du MIT sans attribution.