Funktionen - Beispiele - Gebäude - Dokumentation - unterstützte Plattformen - Lizenz
Miniaudio ist in C ohne Abhängigkeiten außer der Standardbibliothek geschrieben und sollte sauber für alle wichtigen Compiler zusammenstellen, ohne dass zusätzliche Entwicklungspakete installiert werden müssen. Alle wichtigen Desktop- und Mobilfunkplattformen werden unterstützt.
Eine umfassendere Beschreibung der verfügbaren Funktionen in Miniaudio finden Sie im Programmierhandbuch.
Dieses Beispiel zeigt eine Möglichkeit, einen Sound mit der hochstufigen API zu spielen.
#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 ;
}Dieses Beispiel zeigt, wie ein Sound mit der Low -Level -API dekodiert und abspielt.
#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 ;
}Weitere Beispiele finden Sie im Beispiele -Ordner oder online hier: https://miniaud.io/docs/examples/
Führen Sie Folgendes in einer Quelldatei durch:
#define MINIAUDIO_IMPLEMENTATION
#include "miniaudio.h" Dann einfach zusammenstellen. Es müssen keine Abhängigkeiten installiert werden. Unter Windows und MacOS müssen Sie nicht mit irgendetwas verknüpfen. Unter Linux link einfach zu -lpthread , -lm und -ldl . Auf BSD link einfach zu -lpthread und -lm . Auf iOS müssen Sie als Objektiv-C kompilieren.
Wenn Sie Fehler über undefinierte Verweise auf __sync_val_compare_and_swap_8 , __atomic_load_8 usw. erhalten, müssen Sie sich mit -latomic in Verbindung setzen.
Wenn Sie separate .h- und .c -Dateien bevorzugen, finden Sie im Ordner extras/miniaudio_split eine geteilte Version von Miniaudio. Von hier aus können Sie Miniaudio als traditionelle .c- und .h -Bibliothek verwenden - fügen Sie Ihrem Quellbaum einfach Miniaudio.c wie jede andere Quelldatei hinzu und geben Sie Miniaudio.h wie ein normaler Kopfzeile ein. Wenn Sie es vorziehen, als einzelne Übersetzungseinheit (auch bekannt als Unity Builds) zu kompilieren, können Sie die .c -Datei in Ihrer Hauptquelldatei nur #Include #include:
#include "miniaudio.c"Beachten Sie, dass die geteilte Version mithilfe eines Tools automatisch generiert wird und auf der Hauptdatei im Stammverzeichnis basiert. Wenn Sie einen Beitrag leisten möchten, nehmen Sie bitte die Änderung in der Hauptdatei vor.
ABI -Kompatibilität ist nicht zwischen den Versionen garantiert. Achten Sie also darauf, wenn Sie als DLL/SO zusammenstellen. Der empfohlene Weg zur Integration von Miniaudio besteht darin, es direkt zu Ihrem Quellbaum hinzuzufügen.
Online -Dokumentation finden Sie hier: https://miniaud.io/docs/
Die Dokumentation finden Sie auch ganz oben auf Miniaudio.h, was immer die aktuellste und autorischste Informationsquelle zur Verwendung von Miniaudio ist. Alle anderen Dokumentationen werden aus dieser In-Code-Dokumentation generiert.
Miniaudio sollte sauber auf anderen Plattformen zusammenstellen, aber standardmäßig wird keine Unterstützung für die Wiedergabe oder Erfassung enthalten. Um dies zu unterstützen, müssten Sie ein benutzerdefiniertes Backend implementieren. Sie können dies tun, ohne den Miniaudio -Quellcode zu ändern. Siehe Beispiel Custom_backend.
Ihre Wahl für öffentlich zugänglich oder mit MIT keine Zuordnung.