Recursos - Exemplos - Construção - Documentação - Plataformas Suportadas - Licença
O Miniaudio está escrito em C sem dependências, exceto a biblioteca padrão e deve compilar todos os principais compiladores sem a necessidade de instalar nenhum pacotes de desenvolvimento adicionais. Todas as principais plataformas de desktop e móveis são suportadas.
Consulte o manual de programação para obter uma descrição mais completa dos recursos disponíveis no Miniaudio.
Este exemplo mostra uma maneira de reproduzir um som usando a API de alto nível.
#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 ;
}Este exemplo mostra como decodificar e reproduzir um som usando a API de baixo nível.
#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 ;
}Mais exemplos podem ser encontrados na pasta Exemplos ou online aqui: https://miniaud.io/docs/examples/
Faça o seguinte em um arquivo de origem:
#define MINIAUDIO_IMPLEMENTATION
#include "miniaudio.h" Então apenas compile. Não há necessidade de instalar nenhuma dependência. No Windows e MacOS, não há necessidade de vincular a nada. No Linux, basta link para -lpthread , -lm e -ldl . No BSD, basta vincular -se a -lpthread e -lm . No iOS, você precisa compilar como Objective-C.
Se você receber erros sobre referências indefinidas a __sync_val_compare_and_swap_8 , __atomic_load_8 , etc., você precisará vincular -se ao -latomic .
Se você preferir arquivos .h e .c separados, poderá encontrar uma versão dividida do miniaudio na pasta extras/miniaudio_split. A partir daqui, você pode usar o Miniaudio como uma biblioteca tradicional .C e .h - basta adicionar miniaudio.c à sua árvore de origem como qualquer outro arquivo de origem e incluir miniaudio.h como um cabeçalho normal. Se você preferir compilar como uma única unidade de tradução (também conhecida como unidade), você pode apenas #include o arquivo .c no seu arquivo de origem principal:
#include "miniaudio.c"Observe que a versão dividida é gerada automaticamente usando uma ferramenta e é baseada no arquivo principal no diretório raiz. Se você deseja contribuir, faça a alteração no arquivo principal.
A compatibilidade da ABI não é garantida entre as versões, portanto, tome cuidado se compilar como uma DLL/SO. A maneira sugerida de integrar o miniaudio é adicioná -lo diretamente à sua árvore de origem.
A documentação online pode ser encontrada aqui: https://miniaud.io/docs/
A documentação também pode ser encontrada no topo do miniaudio.h, que é sempre a fonte de informação mais atualizada e autorais sobre como usar o Miniaudio. Toda a outra documentação é gerada a partir desta documentação no código.
O Miniaudio deve compilar limpo em outras plataformas, mas não incluirá suporte para reprodução ou captura por padrão. Para apoiar isso, você precisaria implementar um back -end personalizado. Você pode fazer isso sem precisar modificar o código -fonte Miniaudio. Veja o exemplo do Custom_Backend.
Sua escolha de domínio público ou MIT Nenhuma atribuição.