サウンド専用のAPIはありますか?
Allegro や [〜#〜] sdl [〜#〜] などのAPIは、私のニーズに対してあまりにも多くを提供します。次のようなことができるライブラリが必要です。
InitSound();
Sound *door = LoadSound("door.wav");
PlaySound(door,volume);
私はSFMLライブラリの大ファンです。追加のグラフィックスとネットワーク機能を提供しますが、この質問に関連するのは、きちんとしたオーディオパッケージもあるということです。
オーディオ機能は次のとおりです。
ウェブサイト: http://www.sfml-dev.org/
PortAudio を使用します。これは、ポータブルなクロスプラットフォームオーディオAPIです。
OpenGLの使用に慣れている場合は、試してみてください OpenAL ?
APIはOpenGLに非常に似ているので、くつろげるはずです。
私は本当に好きです [〜#〜] sfml [〜#〜] 、それはC++で書かれていて、良いAPI設計のほとんどのルールに従います( [〜#〜] raii [〜# 〜] など)。
より「Cのような」ライブラリを好む場合は、 [〜#〜] sdl [〜#〜] を記載する必要があります。
私はそれが古い質問であることを知っていますが、これに遭遇した人は誰でもチェックアウトしたいと思うかもしれません [〜#〜] fmod [〜#〜]
低レベルのAPIを利用して簡単に開始し、必要に応じて後でより強力な機能(およびFMOD Studio)を利用できます。
APIのサンプルを参照するサウンドを再生するための ドキュメント は次のとおりです。
この例は、FMODの最も簡単な使用法である、複数のサウンドを単純にロードして再生する方法を示しています。
私が開発したクロスプラットフォーム(Mac、Windows)のスペースインベーダークローンにこの低レベルAPIを使用したところ、非常に便利でした。
libsoundio を検討してください。圧縮やコーデックはサポートしていませんが、堅牢なクロスプラットフォームサウンドAPIを提供します。それはあなたのニーズには少し低いレベルかもしれません。探しているライブラリは、libsoundioの上に構築されている可能性があります。
プロのクロスプラットフォームサウンドデザインAPIとオーサリングアプリケーションをお探しの場合は、 Audiokinetic Wwise をご覧ください。サウンドを再生するだけではありません。エフェクト、複雑なサウンドロジックシステム、サウンドレイヤー、プロファイリング、インタラクティブな音楽ツールなどがあります。 Ogg Vorbis および MP のサポートを提供し、非無料です。 -商業プロジェクト。
非商用アプリケーションでのみ無料ですが、 Bass は本当に簡単に実装できます。
使用例:
// initialize device at 44kHz
if (!BASS_Init(-1,44100,0,0,NULL))
{
printf("Can't initialize device");
return 0;
}
HSAMPLE sample;
HCHANNEL channel;
// load from disk
if( sample = BASS_SampleLoad(FALSE,"foo.wav",0,0,1,BASS_SAMPLE_OVER_POS) ) {
// get playable channel
channel = BASS_SampleGetChannel( sample,FALSE);
// play
BASS_ChannelPlay(channel,TRUE);
// wait for playback to finish
while( BASS_ChannelIsActive( channel ) )
Sleep(100);
BASS_SampleFree(sample);
}
// cleanup
BASS_Free();
ゲームや同様のインタラクティブアプリケーション向けのクロスプラットフォームオーディオAPIである Kowalskiプロジェクト をご覧になることをお勧めします。 zlibライセンスの下でリリースされています。
libaohttp://www.xiph.org/ao/ -非常にシンプルで、さまざまなプラットフォームをサポートしています。 RaspberryPiで試してみましたが成功しました。