音を鳴らすための機能として2つのクラスがあります。どっちも大体同じ使い方なんですが、内部の仕組みが違います。いう別のクラスにロードしておいて、それを演奏します。メモリに収まる程度の小さなサイズの音を鳴らすのに使うとよいです。ピストルの音とか足音とか。読み込んでから鳴らすまで、タイムラグが発生しない程度の。ファイルから、すぐにデータを取り出します。このクラスは、たとえば、何分も続くような音楽を鳴らすのに使うとよいです。ファイル全体を読み込んでいたら時間がかかる上にメモリを何百Mバイトも食ってしまうような。いう別のクラスに入ります。このクラスで音声のデータがカプセル化されます。データの形式は基本的には符号付16ビット整数の配列です(いわゆる「オーディオサンプル」)。1つ1つのサンプルは、その時点での音声信号の振幅です。要するに、サウンド全体は、1つ1つのサンプルが並んだもの、ということですね。サウンドとサウンドバッファも同じような考え方で使えます。loadFromFile関数を使います。ストリームからも(loadFromStream関数)読み込めます。ライセンスの問題があるのでサポート外です。オーディオサンプルのリストからバッファを直接作ることもできます。これで、どんな元データからでもサウンドを作れますね。サウンド全体の情報を得るために引数が多めにあります。1つ目(第3引数)は、チャンネル番号です。1はモノラル、2はステレオ、などなど。2つ目(第4引数)は、サンプリングレートです。1秒間にいくつのサンプルが演奏されるのかを指定します。いう情報を指定することで、元のサウンドがどんな状態だったのかを再現できるようになります。クールなところは、同じサウンドバッファを別々のサウンドクラス(sf::Sound)にセットできることです。同時に演奏しても問題なし。サウンド(音楽も)は別のスレッドで演奏されます。play()関数を呼んだ後、他の処理を実行できます(サウンドクラスのインスタンスやデータが破棄されなければ)。演奏は、最後まで行くか、意図的に止めるまで続きます。違って、オーディオデータを前もって読み込むのではなく、ストリームを直接開きます。初期設定もシンプルです。error}music.play();関数名に注目。