サウンドデコーダを利用して再生されるサウンドを表します。 [詳細]
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< SoundDecoder > | Decoders [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 |
| サウンドパートの終端に到達した時に発生するイベントです。 | |
サウンドデコーダを利用して再生されるサウンドを表します。
このクラスは、実際の再生に使われるインターフェイスを抽象化し、基本的なプロパティとメソッドを提供します。このクラスから派生するStaticSoundやStreamingSoundは、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] |
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が呼ばれて再生が始まった後、サウンドの再生が終了する原因には、主に次の二つがあります。
サウンドの終端に到達した事を検知するには、定期的にこのプロパティの値を調べるか、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で保護されています。
1.6.1