2010-11-28 12 views
0

C++でサウンドを再生する必要があります。 すべてのプラットフォームで互換性があります。C++でサウンドを再生

おかげで、

goerdy

+2

どの形式ですか?ビープ音? WAVs? MP3? – Lagerbaer

答えて

4

はOpenALの、FMODまたはSDL_mixerを試してみてください。選択肢は広いです。

+1

私はOpenALを使っていますが、SDL_Mixerも良いです。私はFMODがクロスプラットフォームであることに気づいていないのですか? OpenALはogg vorbisファイルも再生できますので、便利です。小さな拡張ライブラリが必要かどうかわからない。 – Bojangles

+0

私にはコード例がありますか? – goerdy

+0

@JamWaffles:FMODはクロスプラットフォームであり、恐れはありません... –

3
std::cout << "\a\a\a\a\a\a\a\a"; 

)))

+0

ねえ、shuldはwavやmp3ファイルかsthです^^ – goerdy

+2

+1の移植性: ) –

0

"すべてのプラットフォームと互換性" 背の高いオーダーのビットです。結局のところ、「すべてのプラットフォーム」には、車内のコントローラ、原子力発電所のレギュレータ、ネットワーク内のルータが含まれています。

"すべてのデスクトッププラットフォーム"を意味する場合は、もう少し運があるかもしれません。 100%標準C++でサウンドを生成することは不可能ですが、利用可能なライブラリがあります。しかし、私はこれらもあなたを "すべてのプラットフォーム"にするとは思わない。あなたは「最も一般的なプラットフォーム」に納得していますか?

+0

ああ、ちょっと遅くなっちゃったよ^^最もよく聞こえる音はうまくいって^^ Linuxと互換性のある忘れてしまう "すべてのプラットフォーム" – goerdy

+1

アップルはLinuxよりも市場シェアは高くないのですか? :) – Kos

+0

@Kos - MacOS XはBSDをベースにしていたので、とにかくその中心にあるのはUnixだ。サーバやさまざまな埋め込みギズモを組み込むならば、おそらくLinuxはおそらくもっと普及しているだろうが、サーバのすべてが一度に異なる曲を再生し始めると不平を言う人もいるだろう。同期されたパフォーマンスを設定するには、本当にネットワーキングAPIも必要です。 – Steve314

2

私の提案は、それが学ぶとOpenGLなどのプログラミングの類似した流れを持っていることを意図するのはとても簡単ですOpenALの(3DクロスプラットフォームオーディオAPI)

に行くことです。それは無料で、サウンドカードを利用するためのさまざまな拡張機能を備えています。 OpenAllには、OpenGlのUtility Toolkit(GLUT)に似たライブラリがあり、これはフリーラウトと呼ばれています。それは物事をさらに簡単にします。

これが始めるには良い場所かもしれません: http://www.devmaster.net/articles/openal/

そのコード内の関数の一部は廃止されましたが、ドキュメントを読んで、あなたはそれを更新することができます。

devmasterチュートリアルでは、ogg vorbis(ロイヤリティフリー)ファイルをメモリにロードして再生する方法についても教えています。 libvorbisとliboggをダウンロードしてビルドする必要がありますが、良いドキュメントがあります。また、Visual Studioを使用している場合には、既に解決策を作成しています。

Creative Labs(最大のサウンドカードメーカー)がプロジェクトの主な貢献者であるという点は、その点で大きな点です。ハードウェアは無視されません。

最後に、OpenAl SDKをダウンロードし、適切なライブラリとディレクトリにリンクすることを忘れないでください。その中に格納されている特定のファイルを要求する人は常にたくさんいます。

関連する問題