web-dev-qa-db-ja.com

ゲーム用のクロスプラットフォームサウンドAPI?

サウンド専用のAPIはありますか?

Allegro[〜#〜] sdl [〜#〜] などのAPIは、私のニーズに対してあまりにも多くを提供します。次のようなことができるライブラリが必要です。

InitSound();
Sound *door = LoadSound("door.wav");
PlaySound(door,volume);

VorbisMP などの圧縮形式をサポートできれば素晴らしいと思います。

21
jmasterx

私はSFMLライブラリの大ファンです。追加のグラフィックスとネットワーク機能を提供しますが、この質問に関連するのは、きちんとしたオーディオパッケージもあるということです。

オーディオ機能は次のとおりです。

ウェブサイト: http://www.sfml-dev.org/

19
rochal

PortAudio を使用します。これは、ポータブルなクロスプラットフォームオーディオAPIです。

11
Baget

OpenGLの使用に慣れている場合は、試してみてください OpenAL

APIはOpenGLに非常に似ているので、くつろげるはずです。

8
graham.reeds

私は本当に好きです [〜#〜] sfml [〜#〜] 、それはC++で書かれていて、良いAPI設計のほとんどのルールに従います( [〜#〜] raii [〜# 〜] など)。

より「Cのような」ライブラリを好む場合は、 [〜#〜] sdl [〜#〜] を記載する必要があります。

4
Dragontamer5788

SDL_sound は非常に使いやすく、デコードを処理します。 OpenAL を使用した場合は、自分でデコードを行う必要があります(とにかく最後に使用しました)。しかし、私は実際にはゲームにはOpenALを好みます。

2
Bob

私はそれが古い質問であることを知っていますが、これに遭遇した人は誰でもチェックアウトしたいと思うかもしれません [〜#〜] fmod [〜#〜]

低レベルのAPIを利用して簡単に開始し、必要に応じて後でより強力な機能(およびFMOD Studio)を利用できます。

APIのサンプルを参照するサウンドを再生するための ドキュメント は次のとおりです。

この例は、FMODの最も簡単な使用法である、複数のサウンドを単純にロードして再生する方法を示しています。

私が開発したクロスプラットフォーム(Mac、Windows)のスペースインベーダークローンにこの低レベルAPIを使用したところ、非常に便利でした。

2
Simon Bosley

libsoundio を検討してください。圧縮やコーデックはサポートしていませんが、堅牢なクロスプラットフォームサウンドAPIを提供します。それはあなたのニーズには少し低いレベルかもしれません。探しているライブラリは、libsoundioの上に構築されている可能性があります。

1
andrewrk

プロのクロスプラットフォームサウンドデザインAPIとオーサリングアプリケーションをお探しの場合は、 Audiokinetic Wwise をご覧ください。サウンドを再生するだけではありません。エフェクト、複雑なサウンドロジックシステム、サウンドレイヤー、プロファイリング、インタラクティブな音楽ツールなどがあります。 Ogg Vorbis および MP のサポートを提供し、非無料です。 -商業プロジェクト。

1
decasteljau

非商用アプリケーションでのみ無料ですが、 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();
1
Izzy

ゲームや同様のインタラクティブアプリケーション向けのクロスプラットフォームオーディオAPIである Kowalskiプロジェクト をご覧になることをお勧めします。 zlibライセンスの下でリリースされています。

1
perarne

libaohttp://www.xiph.org/ao/ -非常にシンプルで、さまざまなプラットフォームをサポートしています。 RaspberryPiで試してみましたが成功しました。

0
rndrfero