機能 - 例 - 構築 - ドキュメント - サポートされているプラットフォーム - ライセンス
Miniaudioは標準ライブラリ以外の依存関係なしでCで書かれており、追加の開発パッケージをインストールする必要なく、すべての主要なコンパイラにクリーンをコンパイルする必要があります。すべての主要なデスクトッププラットフォームとモバイルプラットフォームがサポートされています。
Miniaudioで利用可能な機能のより完全な説明については、プログラミングマニュアルを参照してください。
この例は、高レベルのAPIを使用してサウンドを再生する1つの方法を示しています。
#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 ;
}この例は、低レベルのAPIを使用してサウンドをデコードして再生する方法を示しています。
#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 ;
}その他の例は、Examplesフォルダーまたはオンラインでhttps://miniaud.io/docs/examples/に記載されています。
1つのソースファイルで以下を実行します。
#define MINIAUDIO_IMPLEMENTATION
#include "miniaudio.h"次に、コンパイルするだけです。依存関係をインストールする必要はありません。窓とmacosでは、何にもリンクする必要はありません。 Linuxでは、 -lpthread 、 -lm 、および-ldlにリンクします。 BSDでは、 -lpthreadおよび-lmにリンクするだけです。 iOSでは、Objective-Cとしてコンパイルする必要があります。
__sync_val_compare_and_swap_8 、 __atomic_load_8などへの未定義の参照に関するエラーが発生した場合は、 -latomicにリンクする必要があります。
別々の.hと.cファイルを希望する場合は、extras/miniaudio_splitフォルダーにminiaudioの分割バージョンを見つけることができます。ここから、Miniaudioを従来の.cおよび.hライブラリとして使用することができます-Miniaudio.cを他のソースファイルと同様にソースツリーに追加し、miniaudio.hを通常のヘッダーのように含めることができます。単一の翻訳ユニット(別名Unityビルド)としてコンパイルを希望する場合は、メインソースファイルに.cファイルを#includeするだけです。
#include "miniaudio.c"スプリットバージョンはツールを使用して自動生成され、ルートディレクトリのメインファイルに基づいていることに注意してください。貢献したい場合は、メインファイルに変更を加えてください。
ABIの互換性はバージョン間で保証されていないため、DLL/SOとしてコンパイルする場合は注意してください。 Miniaudioを統合するための提案された方法は、ソースツリーに直接追加することです。
オンラインドキュメントはこちらをご覧ください:https://miniaud.io/docs/
ドキュメントは、Miniaudio.hの最上部にもあります。これは、Miniaudioの使用方法に関する最新かつ権威ある情報源です。他のすべてのドキュメントは、このコード内のドキュメントから生成されます。
Miniaudioは他のプラットフォームでClean Cleanをコンパイルする必要がありますが、デフォルトで再生またはキャプチャのサポートは含まれません。それをサポートするには、カスタムバックエンドを実装する必要があります。これは、Miniaudioソースコードを変更する必要なく、これを行うことができます。 custom_backendの例を参照してください。
パブリックドメインまたはMITのいずれかの属性のいずれかを選択してください。