2012-02-19 10 views
6

Windowsでは、PlaySound関数を使用して、C++アプリケーションでMP3ファイルを再生できます。 Mac OS X/Linuxで使用できる類似の機能は何でしょうか?これを実証しているサンプルのHello-Worldタイプのプログラムにリンクすることができれば、私も感謝します。ネイティブシステムコールを使用してC++で音を鳴らしますか?

+0

OpenALをクロスプラットフォームのサウンド/音楽に使用することを検討する必要があります。 – rasmus

答えて

4

open("/dev/dsp")と書くことができます。それはあなたが得ることができる "ネイティブのシステムコール"として、私は信じています。

+0

Macで/ dev/dspが利用可能かどうかわからない(デフォルトでは少なくとも) – NothingMore

+0

実例を教えてもらえますか?私はそれをする方法を知らない。 –

1

現在、デスクトップにオーディオファイルを再生するための高度なサービスやライブラリがあるかどうかはわかりませんが、低レベルのOSオーディオ出力を実際に行いたい場合は、hereを探し始めます。たぶんこれはあなたのニーズにあまりにも低レベルです。

3

オーディオについて:Linux!= Mac、私は別々に答えます。

MacOSは、低レベルオーディオ用にcore audioフレームワークを使用しています。そこにはいくつかのより高いレベルのAPIがあります。あなただけのサウンドファイルを再生する場合は、AV Foundation Frameworkが最も可能性が高い方法です。 Hereあなたは簡単にMacOSに移植することができるiOSのための簡単なアプリを構築するための例を見つける。

Linuxの場合、全体の状況は非常に繊細です。多くの異なるフレームワークとライブラリが存在し、それらのうちのいくつかは他のものを模倣しているので、どちらが低いか高いかは非常に不明です。基本的に低レベルのオーディオ用のALSAとOSSがあります。どちらもうんざりです。 Jackは、プロフェッショナルオーディオのフレームワークを提供することを目指していますが、移植性の高いデバイスではありません(少なくとも、組み込みデバイスに興味がある場合)。ほとんどのLinux OSは現在オーディオサーバーとしてPulseAudioを使用していますが、これは単一のサウンドだけを再生するためのシンプルなAPIと低レベルのもののための非常に難しいAPIも備えています。そして、gstreamerライブラリがあります。これは移植性があり、APIのハーフウェイをサポートしています。特に、オーディオファイルの再生と再生のために設計されています。

PortAudioは、いくつかのオペレーティングシステムとaudio frameworksに渡って移植可能なオーディオフレームワークを名前の状態で提供するライブラリです。 PortAudioもうまく設計されており、シンプルで柔軟なAPIを備えています。

関連する問題