FineKernelToolKit: FK_CLI::fk_AudioBase クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_AudioBase クラスabstract

オーディオ基底クラス [詳解]

`#include <CLI/FK_CLI/include/AudioBase_CLI.h>`

FK_CLI::fk_AudioBase の継承関係図
[凡例]

## 公開メンバ関数

| fk_AudioBase ()
| コンストラクタ
| ~fk_AudioBase ()
| デストラクタ
| !fk_AudioBase ()
| ファイナライザ
再生制御メソッド
virtual bool | Open (String^ name) override
| オーディオデータ読み込みメソッド
virtual bool | Ready (void) override
| 再生開始可能状態取得メソッド
virtual bool | Play (void) override
| 再生メソッド
virtual double | Tell (void) override
| 再生位置取得メソッド
virtual void | Seek (double time) override
| 再生位置頭出しメソッド
virtual void | Stop (void) override
| 停止メソッド
virtual void | End (void) override
| オーディオデータ解放メソッド
void | Pause (void)
| ポーズメソッド
ループ再生制御メソッド
void | SetLoopArea (double start, double end)
| ループエリア設定メソッド
double | GetLoopStartTime (void)
| ループ開始点取得メソッド
double | GetLoopEndTime (void)
| ループ終了点取得メソッド

## 静的公開メンバ関数

システム全体初期化・制御メソッド
static bool | Init (void)
| オーディオシステム初期化メソッド
static bool | GetInit (void)
| オーディオシステム初期化状態取得メソッド
static void | Sleep (double time)
| プロセススリープメソッド
サラウンドリスナー制御メソッド
static void | SetListenerModel (fk_Model^ model)
| サラウンドリスナー同期モデル設定メソッド
static fk_Model ^ | GetListenerModel (void)
| サラウンドリスナーモデル取得メソッド

## プロパティ

double | Gain`[get, set]`
| 音量プロパティ
int | QueueSize`[get, set]`
| キューバッファサイズプロパティ
bool | LoopMode`[get, set]`
| ループモードプロパティ
fk_Vector^ | Position`[get, set]`
| サラウンド音源位置プロパティ
fk_Model^ | Model`[get, set]`
| サラウンド音源同期モデルプロパティ
double | Distance`[get, set]`
| サラウンド音源有効距離プロパティ
bool | SurroundMode`[get, set]`
| サラウンド効果状態プロパティ

## 詳解

オーディオ基底クラス

このクラスは、FK が提供するオーディオクラスの基底クラスとなっています。 オーディオ全般で共通して利用するクラスメソッドを実装しています。 FKでは、オーディオシステムとして OpenAL を採用しています。 (OpenAL は FK のインストール時に自動的にインストールされます。)

このクラスの派生クラスによるインスタンスは、 音声再生を制御するための基本的な機能となる再生、 停止、繰り返し再生、音量調整を制御できます。

加えて、サラウンド(立体音響)を利用することもできます。 サラウンド機能においては、 各音源自体の3次元空間での位置を fk_Model と同期を取ることで実現します。 そのため、FK の 3D プログラムと高い親和性を持ちます。 また、3Dグラフィックスにおける「カメラ」に相当するような、 自分自身を指す言葉を「リスナー」と呼びます。 リスナーも fk_Model と同期を取ることができます。

参照
  fk_AudioStream, fk_AudioOggBuffer, fk_AudioWavBuffer, fk_Model

## 構築子と解体子

## ◆ fk_AudioBase()

FK_CLI::fk_AudioBase::fk_AudioBase | ( |  | ) |

コンストラクタ

## ◆ ~fk_AudioBase()

FK_CLI::fk_AudioBase::~fk_AudioBase | ( |  | ) |

デストラクタ

## ◆ !fk_AudioBase()

FK_CLI::fk_AudioBase::!fk_AudioBase | ( |  | ) |

ファイナライザ

## 関数詳解

## ◆ Open()

virtual bool FK_CLI::fk_AudioBase::Open | ( | String^ | name | ) |

pure virtual

オーディオデータ読み込みメソッド

データを開くための仮想メソッドです。 具体的な仕様は各派生クラスの Open() を参照して下さい。

引数

  [in] | name | データ名称。

戻り値
  成功すれば true を、失敗すれば false を返します。

参照
  fk_AudioStream::Open(), fk_AudioOggBuffer::Open(), fk_AudioWavBuffer::Open()

FK_CLI::fk_AudioOggBuffer, FK_CLI::fk_AudioStream, FK_CLI::fk_AudioWavBufferで実装されています。

## ◆ Ready()

virtual bool FK_CLI::fk_AudioBase::Ready | ( | void |  | ) |

pure virtual

再生開始可能状態取得メソッド

データ入力やデバイスの初期化等の処理が終了し、 再生が可能な状態となっているかどうかを取得するメソッドです。

覚え書き
  本メソッドは、通常の利用においてはユーザが使用する必要はありません。

戻り値
  再生可能状態であれば true を、 まだ再生の準備ができていない状態であれば false を返します。

FK_CLI::fk_AudioOggBuffer, FK_CLI::fk_AudioStreamで実装されています。

## ◆ Play()

virtual bool FK_CLI::fk_AudioBase::Play | ( | void |  | ) |

pure virtual

再生メソッド

実際に音声の再生を行うメソッドです。 本メソッドは、再生を行いたい状況においては1秒に数回以上の割合で、 連続して実行する必要があります。

覚え書き
  本メソッドは、呼び出しタイミングが一定でないと環境によっては 動作が不安定となることがあります。 メインループとは別のスレッドにて、一定タイミングで呼び出すことを推奨します。

戻り値
  音声再生が完了していない場合は true を、 完了している場合 false を返します。

FK_CLI::fk_AudioOggBuffer, FK_CLI::fk_AudioStreamで実装されています。

## ◆ Tell()

virtual double FK_CLI::fk_AudioBase::Tell | ( | void |  | ) |

pure virtual

再生位置取得メソッド

現在の再生位置を返します。単位は秒です。 このメソッドが返す値は再生時間ではなく、 音源での始端からの時間となります。

戻り値
  現時点での再生位置。

参照
  Seek()

FK_CLI::fk_AudioOggBuffer, FK_CLI::fk_AudioStreamで実装されています。

## ◆ Seek()

virtual void FK_CLI::fk_AudioBase::Seek | ( | double | time | ) |

pure virtual

再生位置頭出しメソッド

現在の再生位置を変更します。単位は秒です。

引数

  [in] | time | 再生位置。

参照
  Tell()

FK_CLI::fk_AudioOggBuffer, FK_CLI::fk_AudioStreamで実装されています。

## ◆ Stop()

virtual void FK_CLI::fk_AudioBase::Stop | ( | void |  | ) |

pure virtual

停止メソッド

音声の再生を停止し、再生位置も初期化します。 この後に Play() を実行した場合、 停止位置ではなく始端(または指定した箇所)から再生されます。 一時停止を行いたい場合は Pause() を利用して下さい。

参照
  Pause()

FK_CLI::fk_AudioOggBuffer, FK_CLI::fk_AudioStreamで実装されています。

## ◆ End()

virtual void FK_CLI::fk_AudioBase::End | ( | void |  | ) |

pure virtual

オーディオデータ解放メソッド

Open() 等で確保したデータを解放します。

参照
  Open(), Stop(), Pause()

FK_CLI::fk_AudioOggBuffer, FK_CLI::fk_AudioStreamで実装されています。

## ◆ Pause()

void FK_CLI::fk_AudioBase::Pause | ( | void |  | ) |

ポーズメソッド

音声再生の一時停止を行います。 この後に Play() を実行した場合、 停止位置からの再生が始まります。 始端(または指定した箇所)からの再生を行いたい場合は Stop() を利用して下さい。

参照
  Play(), Stop(), End()

## ◆ SetLoopArea()

void FK_CLI::fk_AudioBase::SetLoopArea | ( | double | start,
|  | double | end )

ループエリア設定メソッド

ループモードが ON である場合に、繰り返す音源の時間帯を指定します。 デフォルトでは、開始時間は 0、終了時間は -1 に設定されており、 終了時間が開始時間より前に設定されている場合、 ループモードでの終端は音源の終端となります。

引数

  [in] | start | ループモードでの再生開始時間
  [in] | end | ループモードでの再生終了時間

参照
  LoopMode, Play(), Seek(), Tell()

## ◆ GetLoopStartTime()

double FK_CLI::fk_AudioBase::GetLoopStartTime | ( | void |  | ) |

ループ開始点取得メソッド

ループモードでの再生開始時間を取得します。

戻り値
  再生開始時間

参照
  LoopMode, SetLoopArea(), GetLoopEndTime()

## ◆ GetLoopEndTime()

double FK_CLI::fk_AudioBase::GetLoopEndTime | ( | void |  | ) |

ループ終了点取得メソッド

ループモードでの再生終了時間を取得します。

戻り値
  再生終了時間

参照
  LoopMode, SetLoopArea(), GetLoopStartTime()

## ◆ Init()

bool FK_CLI::fk_AudioBase::Init | ( | void |  | ) |

static

オーディオシステム初期化メソッド

オーディオシステムを利用する際の初期化を行います。 本メソッドはオーディオシステムを利用する際には必ず実行する必要があります。 しかし、このメソッドの実行には一定の時間を要する場合もあります。 GetInit() メソッドを併用することで、頻繁な実行は避けるべきです。

参照
  GetInit()

## ◆ GetInit()

bool FK_CLI::fk_AudioBase::GetInit | ( | void |  | ) |

static

オーディオシステム初期化状態取得メソッド

既に初期化を行っているかどうかを取得します。 初期化を行う Init() メソッドは、 環境によってはかなり長い実行時間となることもあるため、 事前に本メソッドによって既に初期化が行われているかどうか調査を行い、 初期化されていない場合にのみ初期化を行うように記述すべきです。

参照
  Init()

## ◆ Sleep()

void FK_CLI::fk_AudioBase::Sleep | ( | double | time | ) |

static

プロセススリープメソッド

音声再生のため処理を、指定された時間だけ中断します。 単位は秒です。

このメソッドは、処理を短時間停止して CPU の計算資源を別の処理に割くためのものであり、 再生を停止するためのものではありません。 再生を停止するには本メソッドではなく Stop() や Pause() を用いて下さい。

なお、本メソッドは static メソッドとなっており、 処理の停止はインスタンス全体に対して行われます。

覚え書き
  本メソッドは、通常の利用においてユーザが用いることは想定していません。

引数

  [in] | time | 処理を停止する時間。

参照
  Stop(), End()

## ◆ SetListenerModel()

void FK_CLI::fk_AudioBase::SetListenerModel | ( | fk_Model^ | model | ) |

static

サラウンドリスナー同期モデル設定メソッド

リスナーの位置を制御するための、 同期モデルインスタンスを指定します。 デフォルトでは、リスナー位置は原点です。

なお、本クラスのリスナーは オーディオ系クラスの全インスタンスで共通となっています。 そのため static メソッドとなっており、 クラスインスタンスを生成せずに指定することが可能です。

リスナーではなく、音源自身の位置を変更するには Position プロパティや Model プロパティを使用して下さい。

引数

  [in] | model | リスナーとなるモデルインスタンスへのポインタ。

参照
  Position, Model

## ◆ GetListenerModel()

fk_Model ^ FK_CLI::fk_AudioBase::GetListenerModel | ( | void |  | ) |

static

サラウンドリスナーモデル取得メソッド

リスナーに指定したモデルインスタンスを取得します。

戻り値
  リスナーモデルインスタンスのポインタ。

参照
  SetListenerModel(fk_Model^)

## プロパティ詳解

## ◆ Gain

double FK_CLI::fk_AudioBase::Gain

getset

音量プロパティ

音量(減衰率)の参照や設定を行います。 0 で無音、1 で最大音量となります。 0 未満または 1 を超過する値が指定された場合は、 音量の変化を行いません。

## ◆ QueueSize

int FK_CLI::fk_AudioBase::QueueSize

getset

キューバッファサイズプロパティ

キューバッファサイズの参照や設定を行います。 デフォルトは 64 です。

## ◆ LoopMode

bool FK_CLI::fk_AudioBase::LoopMode

getset

ループモードプロパティ

ループモードの参照や設定を行います。 ループモードとは、音源の最後まで再生が終了した際に、 最初から再び再生を開始するかどうかを設定するためのモードです。 具体的には、再生が音源の最後となった時点での play() の挙動が異なってきます。 ループモードが ON (true) の場合、 再生位置が最初の時点に戻り音源の再生を行います。 OFF の場合 play() は再生を終了し、OFF (false) となります。

参照
  Play(), SetLoopArea()

## ◆ Position

fk_Vector^ FK_CLI::fk_AudioBase::Position

getset

サラウンド音源位置プロパティ

音源インスタンス 3 次元位置の参照や設定を行います。 Model プロパティによる同期モデルの指定が行われた場合は、 同期モデル位置が優先されます。 デフォルトは原点です。

参照
  Model

## ◆ Model

fk_Model^ FK_CLI::fk_AudioBase::Model

getset

サラウンド音源同期モデルプロパティ

音源インスタンスの3次元空間中での位置と同期するモデルの参照や指定を行います。 ここで指定したモデルが移動することにより、 音源もサラウンド効果の中で移動します。 同期を解除したい場合は null を代入します。

参照
  Position, Model, SetListenerModel(fk_Model^)

## ◆ Distance

double FK_CLI::fk_AudioBase::Distance

getset

サラウンド音源有効距離プロパティ

3次元空間中で音源が届く距離の参照や指定を行います。 サラウンド効果においては、 音源はリスナーから離れるほど出力音量が小さくなり、 ここで指定する距離より大きい場合に聞こえなくなります。

## ◆ SurroundMode

bool FK_CLI::fk_AudioBase::SurroundMode

getset

サラウンド効果状態プロパティ

このインスタンスのサラウンド効果を制御します。 true の場合、サラウンド効果を有効とします。 false の場合は無効とします。

覚え書き
  音源のサラウンド効果を有効とするには、 音源自体は(ステレオではなく)モノラルである必要があります。