サウンドデコーダ(SounDecoder.SoundDecoder)は、入力ストリーム(System.IO.Stream)の内容を扱いやすい形式に変換します。
サウンドデコーダは入力ストリームと一対一に対応します。その為、もし入力ストリームがファイルストリーム(System.IO.FileStream)であれば──つまり大抵の場合は、サウンドデコーダ = WaveやMP3などの音声ファイルと捉えてもらってもあまり問題はありません。
サウンドパート(SounDecoder.Sounds.SoundPart)は、サウンドの構成要素です。ここで言うサウンドとは、一続きの音を指します。あるサウンドは効果音だったり、あるサウンドはオーケストラの演奏一曲だったり、またあるサウンドはループ再生するゲーム音楽だったりするかも知れません。とにかく、連続するひとまとまりの音、それをサウンドと呼びます。それを構成するのが前述の通り、サウンドパートです。
スタティックサウンド(SounDecoder.Sounds.StaticSound)は、サウンドパートの観点から言うと、サウンドパートを一つだけ持つサウンドです。
スタティックサウンドにおいては、サウンドパートのNextPartプロパティは意味を持ちません。NextPartは常に自分自身であると仮定され、スタティックサウンドのLoopingプロパティは、このサウンドパートを繰り返し再生するか否かを表します。
ストリーミングサウンド(SounDecoder.Sounds.StreamingSound)は、同様にサウンドパート基準で言うと、サウンドパートを複数持つサウンドです。
ストリーミングサウンドの作成時には、最初に再生されるべきサウンドパートを渡します。再生が開始され、もし最初のサウンドパートが再生され終わると、そのサウンドパートのNextPartプロパティに設定されているサウンドパートが次に再生されます。そのサウンドパートも再生され終われば、更にそのNextPartプロパティを辿って……という事を繰り返します。
ストリーミングサウンドにおいてLoopingプロパティは、NextPartプロパティを辿るか否かを表します(スタティックサウンドにおいてもNextPartが常に自分自身であると捉えれば、同じ意味です)。また、Loopingがtrueの場合でも、NextPartがnull参照であれば、そこで再生は止まります。
ストリーミングサウンドなどでは、サウンドパートの終端まで再生されると、パート終端まで再生された事が通知されます。これはEndOfPartイベントの発生によって実現されます。
| [概念] | ||
|---|---|---|
| Published | : | 2009-10-27T00:50:14+09:00 |
| Last Modified | : | 2009-10-27T00:50:14+09:00 |
| Table of Contents | : | SounDecoder Sounds |
| Verified with | : | |