クラス SounDecoder.Sounds.Sound

サウンドデコーダを利用して再生されるサウンドを表します。 [詳細]

SounDecoder.Sounds.Soundに対する継承グラフ
SounDecoder.Sounds.StaticSound SounDecoder.Sounds.StreamingSound

すべてのメンバ一覧

Public メソッド

void Dispose ()
 すべてのリソースを破棄します。
void Bind (SoundDecoder decoder)
 サウンドデコーダをこのサウンドと結び付けます。
abstract void Play ()
 サウンドを現在位置から再生します。
abstract void Stop ()
 サウンドの再生を停止します。

Protected メソッド

 Sound ()
 サウンドを作成します。
virtual void Dispose (bool disposing)
 リソースを破棄します。
void OnEndOfPart (EndOfPartEventArgs e)
 EndOfPartイベントを発生させます。

プロパティ

bool Disposed [get, set]
 既にリソースが破棄されているかどうかを取得します。
IList< SoundDecoderDecoders [get]
 使用しているサウンドデコーダのリストを取得します。
SoundFormat Format [get]
 サウンドのフォーマットを取得します。
abstract long Position [get, set]
 現在の再生位置を取得または設定します。
abstract bool Playing [get]
 再生中であるかどうかを取得します。
virtual bool Looping [get, set]
 ループ再生を行うかどうかを取得または設定します。
abstract double Volume [get, set]
 再生ボリュームを取得または設定します。
abstract double MaxVolume [get]
 再生ボリュームの最大値を取得します。
abstract double Pan [get, set]
 再生パンを取得または設定します。
abstract double Speed [get, set]
 再生速度を取得または設定します。
abstract double MinSpeed [get]
 再生速度の最小値を取得します。
abstract double MaxSpeed [get]
 再生速度の最大値を取得します。

イベント

internal EndOfPartEventHandler EndOfPart
 サウンドパートの終端に到達した時に発生するイベントです。

説明

サウンドデコーダを利用して再生されるサウンドを表します。

このクラスは、実際の再生に使われるインターフェイスを抽象化し、基本的なプロパティとメソッドを提供します。このクラスから派生するStaticSoundStreamingSoundは、2種類の典型的なサウンドの骨組みを提供します。

サウンドデコーダがストリームを独占する必要があるのと同様に、大抵の場合、サウンドもサウンドデコーダを独占する必要があります。あるサウンドがサウンドデコーダにアクセスしている時に、そのサウンドデコーダの状態を外部から変更した場合の結果は未定義です。また、このクラスの派生クラスに対して直接、あるいはSoundPartを通して間接的に渡されたサウンドデコーダは、Sound.Dispose()が呼ばれた時に共に破棄されます。


コンストラクタとデストラクタ

SounDecoder.Sounds.Sound.Sound (  )  [protected]

サウンドを作成します。


メソッド

void SounDecoder.Sounds.Sound.Bind ( SoundDecoder  decoder  ) 

サウンドデコーダをこのサウンドと結び付けます。

引数:
decoder 結び付けるサウンドデコーダ。
例外:
ArgumentNullException decoder がnull参照です。
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。

サウンドに結び付けられたサウンドデコーダは、Dispose()が呼ばれた際に共に破棄されます。

スタティックサウンドに渡すデコーダや、ストリーミングサウンドのコンストラクタに渡すデコーダなどは、自動的に結び付けが行われる為、明示的にこのメソッドを呼び出す必要はありません。一方、ストリーミングサウンドで二つめ以降のパートに使われるデコーダは、明示的にこのメソッドを呼んで結び付けないと、SoundDecoder.Dispose()が正しく呼ばれない可能性があります。

virtual void SounDecoder.Sounds.Sound.Dispose ( bool  disposing  )  [protected, virtual]

リソースを破棄します。

引数:
disposing マネージドリソースを含むすべてのリソースを破棄するならばtrue、アンマネージドリソースのみを破棄するならばfalse。
void SounDecoder.Sounds.Sound.Dispose (  ) 

すべてのリソースを破棄します。

void SounDecoder.Sounds.Sound.OnEndOfPart ( EndOfPartEventArgs  e  )  [protected]

EndOfPartイベントを発生させます。

引数:
e イベントデータ。
abstract void SounDecoder.Sounds.Sound.Play (  )  [pure virtual]

サウンドを現在位置から再生します。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。

サウンドの再生直後にこのメソッドが呼ばれた場合は、サウンドの先頭から再生されます。また、Stopは再生位置を保存する事を覚えておくと役に立つでしょう。

abstract void SounDecoder.Sounds.Sound.Stop (  )  [pure virtual]

サウンドの再生を停止します。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。

このメソッドはサウンドの再生を停止しますが、一般的なオーディオプレイヤーの停止ボタンとは異なり、再生位置を保存します(一般的なオーディオプレイヤーの一時停止ボタンに相当)。このメソッドが呼ばれた後で、Positionを変更する事無くPlayが呼ばれた場合は、次に再生されるはずだったサンプルから再生が開始されます。

再生位置をリセットする場合は、このメソッドを呼んだ後でPositionに0を設定します。


プロパティ

IList<SoundDecoder> SounDecoder.Sounds.Sound.Decoders [get]

使用しているサウンドデコーダのリストを取得します。

使用しているサウンドデコーダのリスト。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。
bool SounDecoder.Sounds.Sound.Disposed [get, set]

既にリソースが破棄されているかどうかを取得します。

既にリソースが破棄されていればtrue、そうでなければfalse。

SoundFormat SounDecoder.Sounds.Sound.Format [get]

サウンドのフォーマットを取得します。

サウンドのフォーマット。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。
InvalidOperationException サウンドデコーダが一つも結び付けられていません。
virtual bool SounDecoder.Sounds.Sound.Looping [get, set]

ループ再生を行うかどうかを取得または設定します。

ループ再生を行うならばtrue、そうでなければfalse。既定値はfalse。

このプロパティをtrueにした時の効果は実装によって異なる可能性がありますが、StaticSoundを継承するスタティックサウンドの場合、サウンド全体をループ再生するように、またStreamingSoundを継承するストリーミングサウンドの場合、サウンドパートの末尾に到達した場合次のパートを続けて再生するように定められています。

abstract double SounDecoder.Sounds.Sound.MaxSpeed [get]

再生速度の最大値を取得します。

再生速度の最大値。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。

このプロパティの値はインスタンスごとに異なる可能性がある点に注意して下さい。

再生速度の最小値はMaxSpeedで得られます。

abstract double SounDecoder.Sounds.Sound.MaxVolume [get]

再生ボリュームの最大値を取得します。

再生ボリュームの最大値。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。

このプロパティの値が1.0である場合は、その実装では(減衰はできても)増幅はできないという事です。増幅を行うと値域が定義域を超える事があるので、この制約をかける事は一般的です。

ボリュームの最小値はどの実装でも0.0です。

abstract double SounDecoder.Sounds.Sound.MinSpeed [get]

再生速度の最小値を取得します。

再生速度の最小値。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。

このプロパティの値はインスタンスごとに異なる可能性がある点に注意して下さい。

再生速度の最大値はMaxSpeedで得られます。

abstract double SounDecoder.Sounds.Sound.Pan [get, set]

再生パンを取得または設定します。

再生時のパン。0.0の時中央(両チャネル減衰無し)、-1.0の時完全左寄り(右チャネルが無音)、1.0の時完全右寄り(左チャネルが無音)となる線形スケール。既定値は0.0。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。
ArgumentOutOfRangeException 値が異常です。

このプロパティは線形スケールを持ちます。派生クラスにおいて、使用するインターフェイスでdBなどの対数スケールによるパン設定しか行えない場合は、適宜変換を行う必要があります。

パンの最小値と最大値は、どの実装でも-1.0、1.0で一定です。

abstract bool SounDecoder.Sounds.Sound.Playing [get]

再生中であるかどうかを取得します。

現在再生中であればtrue、そうでなければfalse。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。

Playが呼ばれて再生が始まった後、サウンドの再生が終了する原因には、主に次の二つがあります。

  • Stopが呼ばれる。
  • Loopingがfalseに設定されている状態で、サウンドの終端(またはサウンドパートの終端)に到達する。

サウンドの終端に到達した事を検知するには、定期的にこのプロパティの値を調べるか、SoundPart.EndOfPartイベントを利用して下さい。

abstract long SounDecoder.Sounds.Sound.Position [get, set]

現在の再生位置を取得または設定します。

現在の再生位置。単位はサンプル。起点はサウンドの先頭です。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。
ArgumentOutOfRangeException 値が異常です。

再生位置については実装ごとに異なる可能性がありますが、StaticSoundを継承するスタティックサウンドの場合「現在の位置に到達する為に最低限必要なサンプル数」を返すように、またStreamingSoundを継承するストリーミングサウンドの場合「これまでに再生されてきた累計サンプル数」を返すように定められています。

abstract double SounDecoder.Sounds.Sound.Speed [get, set]

再生速度を取得または設定します。

再生時の速度。1.0の時変化無し、2.0の時2倍速となる線形スケール。既定値は1.0。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。
ArgumentOutOfRangeException 値が異常です。

再生速度を変更すると、通常は耳で感じ取れる音の高さは変わります。これは、単純に再生速度を変更した場合、波形が時間軸方向に縮小・拡大される為です。実装によっては音の高さが変わらないように再生速度を変更できるかも知れませんが、このプロパティを使った場合には最も単純な(音の高さが変わるような)速度変更が為されるよう実装して下さい。

再生速度の最小値はMinSpeed、最大値はMaxSpeedで得られます。これらのプロパティはサウンドのインスタンスごとに異なる可能性がある点に注意して下さい。

abstract double SounDecoder.Sounds.Sound.Volume [get, set]

再生ボリュームを取得または設定します。

再生時のボリューム。1.0の時変化無し、0.0の時無音となる線形スケール。既定値は1.0。

例外:
ObjectDisposedException 既にサウンドかサウンドデバイスが破棄されています。
ArgumentOutOfRangeException 値が異常です。

このプロパティは線形スケールを持ちます。派生クラスにおいて、使用するインターフェイスでdBなどの対数スケールによるボリューム設定しか行えない場合は、適宜変換を行う必要があります。

ボリュームの最小値はどの実装でも0.0です。最大値はMaxVolumeで得られます。


イベント

internal EndOfPartEventHandler SounDecoder.Sounds.Sound.EndOfPart [protected]

サウンドパートの終端に到達した時に発生するイベントです。

サウンドパートの終端に到達した事を検知するには、SoundPart.EndOfPartイベントを使う方が自然に書ける為、このイベントはprotected internalで保護されています。


このクラスの説明は次のファイルから生成されました:
 全て クラス 関数 変数 プロパティ イベント

SounDecoderに対してWed Sep 2 02:36:23 2009に生成されました。  doxygen 1.6.1