概念

[備考開始]

この文書の主眼はサウンドパートストリーミングサウンドについて説明する事である為、委細はある程度省略し、厳密さを犠牲にしている箇所があります。

[備考終了]

1. サウンドデコーダ

サウンドデコーダ( SounDecoder.SoundDecoder )は、入力ストリーム( System.IO.Stream )の内容を扱いやすい形式に変換します。

サウンドデコーダは入力ストリームと一対一に対応します。その為、もし入力ストリームがファイルストリーム( System.IO.FileStream )であれば──つまり大抵の場合は、サウンドデコーダ = WaveやMP3などの音声ファイルと捉えてもらってもあまり問題はありません。

2. サウンドパート

サウンドパート( SounDecoder.Sounds.SoundPart )は、サウンドの構成要素です。ここで言うサウンドとは、一続きの音を指します。あるサウンドは効果音だったり、あるサウンドはオーケストラの演奏一曲だったり、またあるサウンドはループ再生するゲーム音楽だったりするかも知れません。とにかく、連続するひとまとまりの音、それをサウンドと呼びます。それを構成するのが前述の通り、サウンドパートです。

サウンドパートは、次のような属性を持っています。

Decoder
利用するサウンドデコーダ
Start End
サウンドデコーダが提供する音声データの中で有効化される範囲(の始まりと終わり)。この範囲に含まれる音声データのみが実際に使われる事となる。
NextPart
このサウンドパートが再生され終わったら次に再生されるべきサウンドパート

一つのサウンドは、このサウンドパートを一つあるいは複数組み合わせる事で表現されます。サウンドには必ず最初に再生されるサウンドパートが一つあり、もし複数組み合わせる場合は NextPart を次々と辿る事で表現されます。

3. スタティックサウンド

スタティックサウンド( SounDecoder.Sounds.StaticSound )は、サウンドパートの観点から言うと、サウンドパートを一つだけ持つサウンドです

スタティックサウンドにおいては、サウンドパートの NextPart プロパティは意味を持ちません。 NextPart は常に自分自身であると仮定され、スタティックサウンドの Looping プロパティは、このサウンドパートを繰り返し再生するか否かを表します。

4. ストリーミングサウンド

ストリーミングサウンド( SounDecoder.Sounds.StreamingSound )は、同様にサウンドパート基準で言うと、サウンドパートを複数持つサウンドです

ストリーミングサウンドの作成時には、最初に再生されるべきサウンドパートを渡します。再生が開始され、もし最初のサウンドパートが再生され終わると、そのサウンドパートの NextPart プロパティに設定されているサウンドパートが次に再生されます。そのサウンドパートも再生され終われば、更にその NextPart プロパティを辿って……という事を繰り返します。

ストリーミングサウンドにおいて Looping プロパティは、 NextPart プロパティを辿るか否かを表します(スタティックサウンドにおいても NextPart が常に自分自身であると捉えれば、同じ意味です)。また、 Looping がtrueの場合でも、 NextPart がnull参照であれば、そこで再生は止まります。

5. パート終端通知

ストリーミングサウンドなどでは、サウンドパートの終端まで再生されると、パート終端まで再生された事が通知されます。これは 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 : Valid XHTML 1.1
Copyright © 2009  E+X.