onlySummaryBSoundPlayerクラスは、BSoundオブジェクトまたは指定されたフック関数によって供給されるデータでオーディオバッファを満たすことにより、音声を演奏します。一つのBSoundPlayerは同時に複数の音声を演奏することが出来ます。sourceの管理の肝心な部分を処理します。あなたがしなければならないことは、BSoundPlayerを開始し、それに再生する音声を供給するだけです。単純な音声再生のために、音声はBSoundクラスを用いて指定されます。オンザフライ演奏や音声の変更が必要であれば、あなたはBSoundPlayerの再生用nodeを通過する各々のオーディオバッファを呼び出すフック関数を実装することができます。BSoundPlayer一旦、BSoundPlayerオブジェクトのインスタンスを作成すると、あなたは実際に音声を再生する前にそれを始動する必要があります。sourceが動作していることを確認します。これはStart()関数を呼び出すことで行われます。BSoundPlayerを使い終わり、もし二度とそれを使う予定がないなら、あなたはそれを削除(delete)することができます。それを再使用のために置いておきたいなら、あなたはそれをStop()できます。nodeを削除(delete)し、音声をきれいに片づけます。sourceの現在の時刻を、CurrentTime()関数を呼び出すことで見つけだすことができます。デフォルトでは、BSoundPlayerで使用される音声フォーマットはBSoundPlayer::B_AUDIO_FLOATで、これは、言うなれば音声が浮動小数点のフォーマット、つまりそれぞれのサンプルが-1.0から1.0の範囲にあるということです。Kitは浮動小数点の音声を内部的に使用するため、できる限り浮動小数点の音声を使用することで、フォーマット変換の労力を削減し、アプリケーションの動作を改善させることができるでしょう。他のフォーマットを使用したいなら、BSoundPlayerオブジェクトのインスタンスを作成する際に、media_raw_audio_formatによってそれを行います。現在のBeOSのリリースでは、単一のBSoundPlayerを通して再生される全てのBSoundは同じサンプリング周波数である必要があります。この制限は将来なくなるでしょう。差し当たっては、あなたがサポートしたいサンプリング周波数毎に一つのBSoundPlayerのインスタンスを作成して下さい。音声フォーマットはBSoundPlayer::B_AUDIO_FLOATのみサポートされています。SoundBSoundPlayerオブジェクトは音声を非同期的に演奏し、好きなだけ多くの音声を再生することができます。player->StartPlaying(sound);StartPlaying()は、音声が存在する間、それを参照するのに使用できるID番号を返します。他のBSoundPlayer関数はこのIDを引数として要求します。timeの100000マイクロ秒に再生を開始します。player->WaitForSound(id);同様に、ボリュームを制御することができます。現在のボリュームを確定するためにVolume()関数を、ボリュームを変更するためにSetVolume()を使用します。ボリュームは浮動小数点数であり、0.0(無音)から1.0(最大ボリューム)の範囲です。AroundBSoundPlayerを使って音声ファイルを演奏することは非常に簡単です。}entry_refは指定された音声ファイルから得られ、その後entry_refから得られたBSoundオブジェクトのインスタンスが作成される。BSoundPlayerオブジェクトは開始され、ボリュームは1.0(フルボリューム)にセットされ、そして音声の再生がStartPlaying()の呼び出しによって開始される。音声の参照カウントは減じられ、最後にBSoundPlayerのWaitForSound()呼び出しが再生の完了まで待機するために用いられます。Playbackもしより進んだ再生を行う必要があるなら—例えばオンザフライで生成される音声を演奏する必要があるなら、または再生中の音声にフィルタをかける必要があるなら。BSoundPlayerオブジェクトのインスタンスを生成する時、またはSetCallbacks()やSetBufferPlayer()を呼び出すことで演奏バッファハンドラ関数を指定するなら、その関数はBSoundPlayerの音声演奏nodeを通して渡すそれぞれのバッファに一度呼ばれます。あなたの演奏バッファハンドラはその後あなたが望む任意のデータでバッファを満たします。演奏バッファ関数を特定するなら、BSoundの再生は動作しません。両方が必要なら、複数のBSoundPlayerオブジェクトを使用しなければなりません。下記のコードは、三角波を演奏するBSoundPlayerをセットアップします。player.Stop();このコードは、演奏バッファ関数がトラッキングするのに必要な情報を含み、音声を演奏するためにBufferProc()関数を使用する"wave_player"という名前のBSoundPlayerを生成し、我々の作りだしたcookieを使用するrecordとcookieを発行します。その後、playerが開始されると、音声演奏nodeに演奏すべきデータがあるということを知らせるためにSetHasData()が呼ばれます。これは演奏バッファが呼び出しを開始される原因となります。再生が終了すると、Stop()関数が再生を停止させるために呼び出されます。}この演奏バッファ関数の例では、一時に64分の1ずつ繰り返し、波を1.0から-1.0まで勾配を付けて三角波を生成しています。バッファに保存される次の値と値が変化する方向はcookieのフィールドに保持されます。あなたの演奏バッファ関数のバッファは空白を受け取ります。ユーザはそれを自分の好きなように扱って下さい(あるいは何もしないで下さい)。NULL)BSoundPlayerオブジェクトのインスタンスを生成します。引数nameは音声演奏nodeに割り当てられる名前を指定します(NULLを指定した場合、一般的な名前が割り当てられます)。引数PlayBufferは再生のためにデータを処理しそれをバッファに挿入するメンバ関数のポインタを指定します。BSoundを演奏するためにBSoundPlayerを使用したい場合は、NULLを指定して下さい。PlayBuffer関数へのパラメータは(列挙すると):cookieへのポインタ。演奏するバッファへのポインタ。バッファのオーディオデータのフォーマット。パラメータNotifierは、再生の開始や停止など興味あるイベントが生じた際に通知を受け取るメンバ関数へのポインタを指定します。デフォルトの通知ハンドラを使用するにはNULLを指定して下さい。通知には3つあります。B_STARTED及びB_STOPPEDは、BSoundPlayerが開始または停止させられたことを示します。これらは引数としてBSoundPlayerオブジェクトへのポインタを受け取ります。B_SOUND_DONEは、音声の演奏終了を示します。この場合は、二つの引数を取ります。最初のものは音声の演奏が終了したことを示すplay_idであり、もう一つは音声が全て演奏された場合にtrueを、演奏されなければfalseとなる真偽値を示します。コールバック(callback)ハンドラがクラスのメンバであれば、それらは静的メンバでなければなりません。cookieパラメータはユーザ自身の目的のために使用できるポインタです。それはもしカスタムのPlayBufferまたはNotifierを使用する際には最も使いやすいものです。コンストラクタの2番目の形式では、format引数でBSoundPlayerが演奏するオーディオのフォーマットを指定できます。BSoundPlayerが生の(raw)音声ファイル以外演奏できないため、これはmedia_raw_audio_format構造体を用いて指定されます。コンストラクタの3番目の形式では、音声が演奏されるnodeを指定でき、また音声のフォーマットを指定するのに、古いmedia_raw_audio_formatの代りにmedia_multi_audio_formatを使用できます。BSoundPlayerオブジェクトを使用する前にInitCheck()を呼び出して下さい。これによって、オブジェクトがうまく生成されたかどうかを知ることができます。InitCheck()がエラーを示すのは、ユーザがサウンドカードをインストールしていない時です。~BSoundPlayer()~BSoundPlayer()再生を停止するときは、もし音声が演奏されていれば、BSoundPlayerに使用されている全てのBSoundオブジェクトへの参照を開放し、BSoundPlayerによって使用されている全てのメモリを開放して下さい。&format))BufferPlayer()は、デフォルトのplayerが使用されていれば、現在の演奏バッファ関数へのポインタを返します。SetBufferPlayer()は、演奏バッファ関数を変更します。*cookie)Cookie()は、BSoundPlayerに割り当てられた現在のcookieを返します。SetCookie()は、BSoundPlayerに割り当てられたcookieを変更します。PerformanceTime()は、BSoundPlayerオブジェクトが正しく初期化されていなければB_ERRORを返します。...))EventNotifier()は、現在のイベント通知ハンドラ関数へのポインタを返すか、もしデフォルトのplayerが使用されていればNULLを返します。SetNotifier()はイベント通知ハンドラ関数を変更します。constBSoundPlayerのフォーマットを返します。音声は常に生の(raw)音声フォーマットであるため、media_raw_audio_format構造体が使用されます。constBSoundPlayerのボリューム制御に関する情報を返します。満たされる変数のポインタを渡して下さい(NULLは許可されません)。これらの値は下記のplayerを記述するために設定されます。outNodeは、BSoundPlayerのオーディオ出力が管理されるnodeです。outParameterは、ボリューム制御のためのパラメータIDです。outMinDBは、デシベル単位での最小ボリュームです。outMaxDBは、デシベル単位での最大ボリュームです。hasData)HasData()は、再生のためのサウンドキューがあればtrueを返し、そうでなければfalseを返します。SetHasData()は、音声再生のスケジュールがあるか否かを指定します。これらの関数の目的は、BSoundPlayerを最適化することです。再生するべきデータキューがなければ、そのパフォーマンスを最適化すると音声演奏nodeは言われます。バッファ演奏関数を使用していれば、演奏すべきデータがあることを示すためにSetHasData()を使用しなければなりません。InitCheck(void)BSoundPlayerオブジェクトをコンストラクトした結果の状態(status)コードが返されます。そのオブジェクトをコンストラクトしたときには、この関数を呼びます。返された値がB_OK以外であれば、そのオブジェクトを使用すべきではありません。Latency(void)BSoundPlayerのlatencyを返します。NULL)演奏バッファハンドラ関数、イベント通知ハンドラ関数とcookieを全て同時に設定する、ごく小さな操作です。inError)InitCheck()によって返される状態(status)コードを設定します。volume)指定されたsoundのvolumeを(0.0から1.0の範囲で)設定します。playerのnodeを開始することでBSoundPlayerをアクティブにします。nodeを停止することでBSoundPlayerを非アクティブにします(もしblockがtrueなら、Stop()関数はnodeが停止するまでブロックします)。flushがtrueなら、キューの音声は全てメモリから削除されます。BSoundPlayerが動作している間、演奏バッファ関数は、(もし一つを指定していたなら)BSoundPlayerの再生nodeを通して渡されたそれぞれのバッファから呼び出されます。このフック関数は、オンザフライで音声を生成したり、再生される前にフィルタを通すなど、より高度な音声再生を実装するために使用できます。音声の再生が開始された。playerのStartNode()関数から返されるものと同様。timeに指定されたBSoundを再生開始するよう予定を入れます。atTimeが0の場合、音声はただちに(または、もしBSoundPlayerがまだ開始されていなければStart()が呼ばれた後すぐに)再生を開始します。この関数によって返されたplay_idは、後に音声を識別するために使用されます。これが負の値であれば、エラーが生じたということになります(正の値の場合は、下記のリストをご覧下さい)。StartPlaying()の2つ目の形式では、音声が再生される際のボリュームを指定できます。StopPlaying()は、与えられたidによって指定された音声の演奏を停止します。WaitForSound()は、指定された音声が演奏を停止するまで待ちます。IsPlaying()は、指定された音声が演奏中であればtrueを、そうでなければfalseを返します。オーディオがサポートされたフォーマットではない(StartPlaying())。指定されたidが存在していない(WaitForSound()及びIsPlaying())。newVolume)Volume()は、現在の再生音量を返します。SetVolume()は、再生音量を変更します。このボリュームは、BSoundPlayerによって演奏されている全ての音声のボリュームを総合したものです。個々の音声のボリュームを制御する場合は、SetSoundVolume()関数を使用して下さい。ボリュームは0.0から1.0までの範囲を取ります。0.0は無音であり、1.0は最も大きな音です。ボリュームをパーセントによる範囲の代りにデシベルを使って扱いたいなら、VolumeDB()及びSetVolumeDB()を使用することが出来ます。newVolumeDB)VolumeDB()は、現在の再生音量をデシベルで返します。SetVolumeDB()は、デジベルで再生音量を設定します。このボリュームは、BSoundPlayerによって演奏されている全ての音声のボリュームを総合したものです。個々の音声のボリュームを制御する場合は、SetSoundVolume()関数を使用して下さい。ボリュームの取りうる範囲は、GetVolumeInfo()を呼び出すことで得られます。ボリュームをデシベルによる範囲の代りにパーセントを使って扱いたいなら、Volume()及びSetVolume()を使用することが出来ます。Volume()及びSetVolume()もご覧下さい。関数経由で開始された。音声の演奏が終了した。これらの定数は、どんな種類の興味深いイベントが発生したか示すために、イベント通知ハンドラ関数に渡されます。play_id;BSoundPlayerによって演奏されている特定の音声を識別します。StartPlaying()は、この形式の値を返します。reserved..。