プロパティ (WaveOut コントロール)

AvgBytesPerSec プロパティ

平均データ レート (バイト/秒) を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.AvgBytesPerSec

object は、WaveOut コントロールを指すオブジェクト式です。

解説

AvgBytesPerSec プロパティは、サウンド データが 1 秒当たり何バイトであるかを示す値を返します。この値は、BitsPerSample プロパティChannels プロパティSamplesPerSec プロパティの値に依存します。オーディオ データの長さ (時間) が分かれば、この値を用いて、オーディオ データのサイズ (バイト数) を求めることができます。

データ型

長整数型 (Long)

BitsPerSample プロパティ

サウンドを何ビットの量子化ビット数で再生するかを設定します。値の取得も可能です。

構文

object.BitsPerSample [= value]

BitsPerSample プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
valueサンプリング ビット数を示す定数または値を指定します。
設定する値については、次の「設定値」を参照してください。

設定値

value の設定値は次のとおりです。

定数内容
wifBPS8Bit8(既定値) サウンドを 8 ビットで再生します。
wifBPS16Bit16サウンドを 16 ビットで再生します。

ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。

解説

BitsPerSample プロパティは、サウンドの質およびデータ量に影響します。再生しようとしているサウンド データの量子化ビット数に合わせて、BitsPerSample プロパティの値を設定してください。

デバイスが開いているとき (IsOpen プロパティTrue の場合) は、値を設定できません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。すでにデバイスが開いているときに BitsPerSample プロパティに値を設定する場合は、Close メソッドを使ってデバイスを閉じる必要があります。

データ型

整数型 (Integer)

参照

Channels プロパティSamplesPerSec プロパティ

BlockAlign プロパティ

サウンド データの 1 サンプルが何バイトであるかを返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.BlockAlign

object は、WaveOut コントロールを指すオブジェクト式です。

解説

BlockAlign プロパティは、データが何バイト単位で処理されるかを示します。例えば、16 ビット、ステレオのサウンド データは 4 バイト単位でデータが処理されます (2 バイト × 2 チャネル)。BlockAlign プロパティの値は、BitsPerSample プロパティChannels プロパティの値に依存します。

通常、サウンドの再生に使用するバッファのサイズ (BufferSize プロパティ) は、BlockAlign プロパティの整数倍になるように設定します。

データ型

整数型 (Integer)

BufferSize プロパティ

サウンドの再生に用いるバッファのサイズを設定します。値の取得も可能です。

構文

object.BufferSize [= value]

BufferSize プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
valueバッファのサイズを指定します。

解説

BufferSize プロパティは、バッファ 1 個あたりのバッファ サイズを設定します。

サウンドを再生するためには、再生データを格納するバッファが必要です。このバッファは WaveOut コントロールが自動的に管理します。バッファを確保するためには、BufferSize プロパティに適当なバッファ サイズを設定し、NumBuffers プロパティに 1 以上の値を設定します。これにより、BufferSize × NumBuffers バイトのメモリがバッファとして確保されます。

通常、サウンドの再生に使用するバッファのサイズ (BufferSize プロパティ) は、BlockAlign プロパティの整数倍になるように設定します。

メモリ不足のためにバッファが確保できない場合は、エラーが発生します。

サウンドの再生中 (IsBusy プロパティTrue の場合) は、BufferSize プロパティに値を設定することはできません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。値を設定したい場合には、Stop メソッドを呼び出して、再生を停止する必要があります。

データ型

長整数型 (Long)

Channels プロパティ

オーディオ チャネル数 (モノラル/ステレオ) を設定します。値の取得も可能です。

構文

object.Channels [= value]

Channels プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
valueオーディオ チャネル数を示す定数または値を指定します。
設定する値については、次の「設定値」を参照してください。

設定値

value の設定値は次のとおりです。

定数内容
wifMono1(既定値) サウンドをモノラル (1 チャネル) で再生します。
wifStereo2サウンドをステレオ (2 チャネル) で再生します。

ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。

解説

バッファにあるサウンド データは、次のように処理されます。

Channels = 1 (wifMono) の場合

1 サンプル目2 サンプル目3 サンプル目4 サンプル目

Channels = 2 (wifStereo) の場合

1 サンプル目
(左チャネル)
1 サンプル目
(右チャネル)
2 サンプル目
(左チャネル)
2 サンプル目
(右チャネル)

再生しようとしているサウンド データのチャネル数に合わせて、Channels プロパティの値を設定してください。

デバイスが開いているとき (IsOpen プロパティTrue の場合) は、値を設定できません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。すでにデバイスが開いているときに Channels プロパティに値を設定する場合は、Close メソッドを使ってデバイスを閉じる必要があります。

データ型

整数型 (Integer)

参照

BitsPerSample プロパティSamplesPerSec プロパティ

DeviceID プロパティ

サウンドの再生に使用するデバイスの ID を指定します。値の取得も可能です。

構文

object.DeviceID [= value]

DeviceID プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
valueデバイス ID を示す値を指定します。
設定する値については、次の「設定値」を参照してください。

設定値

value の設定値は次のとおりです。

設定値内容
0 ~ (デバイスの数 – 1)デバイス ID によって識別される特定のデバイスを指定します。
wifWaveMapper(既定値) システムが自動的に適切なデバイスを割り当てるように指定します。

ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。

解説

デバイス ID は、ウェーブ出力デバイスを識別するための番号です。この番号は 0 から始まり、上限は、システムにインストールされているデバイスの数 – 1 です。システムにインストールされているデバイスの数は、NumDevices プロパティで調べることができます。システムにデバイスが 1 つもインストールされていない場合 (NumDevices プロパティが 0 の場合) に、DeviceID プロパティに値を設定しようとすると、エラーが発生します。

DeviceID プロパティには、特別な値として、定数 wifWaveMapper を指定することができます。この値を指定すると、デバイスを開くときに、システムが自動的に適切なウェーブ出力デバイスを割り当てます。

デバイスが開いているとき (IsOpen プロパティTrue の場合) は、値を設定できません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。すでにデバイスが開いているときに DeviceID プロパティに値を設定する場合は、Close メソッドを使ってデバイスを閉じる必要があります。

データ型

整数型 (Integer)

DeviceName プロパティ

DeviceID プロパティに設定されているデバイス ID に対応するデバイスの名前を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.DeviceName

object は、WaveOut コントロールを指すオブジェクト式です。

解説

DeviceName プロパティの値を利用して、現在使用しているデバイスの名称をユーザに示すことができます。また、DeviceID プロパティおよび NumDevices プロパティと組み合わせて、システムにインストールされているデバイスの一覧を作成することができます。

データ型

文字列型 (String)

ErrorNum プロパティ

Windows マルチメディア システム内で発生したエラーに対応するエラー番号を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.ErrorNum

object は、WaveOut コントロールを指すオブジェクト式です。

戻り値

以下のいずれかの値を返します。

定数内容
wifMMSysErrNoError0コマンドが実行されました。
wifMMSysErrError1未定義の外部エラーが発生しました。
wifMMSysErrBadDeviceID2システムの制限範囲を越えるデバイス ID が使われました。
wifMMSysErrNotEnabled3ドライバは使用可能にされませんでした。
wifMMSysErrAllocated4このデバイスはすでに使用中です。 解放されるまで待ってから、やり直してください。
wifMMSysErrInvalidHandle5デバイス ハンドルが無効です。
wifMMSysErrNoDriver6システムにドライバがインストールされていません。
wifMMSysErrNoMem7メモリ不足のため実行できません。 アプリケーションをいくつか終了して、空きメモリを増やしてください。
wifMMSysErrNotSupported8この関数はサポートされていません。 Capabilities 関数を使って、ドライバがサポートしているものを調べてください。
wifMMSysErrBadErrNum9システムで定義されていないエラー番号が指定されました。
wifMMSysErrInvalFlag10無効なフラグがシステム関数に渡されました。
wifMMSysErrInvalParam11無効なパラメータがシステム関数に渡されました。
wifMMSysErrHandleBusy12ハンドルはほかのスレッド (callback など) で使用されています。
wifMMSysErrInvalidAlias13指定したエイリアスは WIN.INI ファイルにはありません。
wifMMSysErrBadDB14レジストリ データベースが壊れています。
wifMMSysErrKeyNotFound15指定したレジストリ キーが見つかりません。
wifMMSysErrReadError16レジストリが開けなかったか、または読み取れませんでした。
wifMMSysErrWriteError17レジストリに書き込めませんでした。
wifMMSysErrDeleteError18指定されたレジストリ キーを削除できませんでした。
wifMMSysErrValNotFound19指定されたレジストリ キーの値が見つかりませんでした。
wifMMSysErrNoDriverCB20ドライバは有効な OPEN コールバックを生成しませんでした。

ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。

解説

メソッドの呼び出しや、プロパティのアクセスにより、実行時エラー「マルチメディア システムでエラーが発生しました。」が発生した場合に、ErrorNum プロパティを参照することにより、エラーの詳細を知ることができます。

データ型

長整数型 (Long)

参照

トラップ可能なエラーErrorString プロパティ

ErrorString プロパティ

Windows マルチメディア システム内で発生したエラーに対応するエラー メッセージを返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.ErrorString

object は、WaveOut コントロールを指すオブジェクト式です。

解説

メソッドの呼び出しや、プロパティのアクセスにより、実行時エラー「マルチメディア システムでエラーが発生しました。」が発生した場合に、ErrorString プロパティを参照することにより、エラーの詳細を知ることができます。

データ型

文字列型 (String)

参照

トラップ可能なエラーErrorNum プロパティ

hWaveOut プロパティ

現在開いているウェーブ出力デバイスのハンドルを返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.hWaveOut

object は、WaveOut コントロールを指すオブジェクト式です。

解説

デバイス ハンドルは、現在開いているウェーブ出力デバイスを識別するための番号です。デバイスが開いていないときは、hWaveOut プロパティは 0 を返します。

Windows マルチメディア API のうち、名前が waveOut で始まる関数を呼び出すとき、たいていの場合、ウェーブ出力デバイスのハンドルを必要とします。waveOut 系関数を直接呼び出す場合に、API 関数の hWaveOut パラメータに hWaveOut プロパティの値を指定します。

データ型

OLE_HANDLE 型

IsBufferBusy プロパティ

再生用のバッファが使用中であるかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.IsBufferBusy (bufferindex)

IsBufferBusy プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
bufferindexバッファのインデックスを指定します。

解説

bufferindex で指定したバッファがまだ処理されずに、または処理中でデバイスの内部にある場合は、True を返します。IsBufferBusy プロパティが True のバッファに対して、AddBuffer メソッドを呼び出すことはできません。

データ型

ブール型 (Boolean)

IsBusy プロパティ

再生中であるかどうかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.IsBusy

object は、WaveOut コントロールを指すオブジェクト式です。

解説

Pause メソッドの呼び出しによって再生が一時停止している場合でも、バッファがデバイスの中に 1 つ以上あれば、IsBusy プロパティは True を返します。

データ型

ブール型 (Boolean)

参照

OnBusyFlagChange イベント

IsOpen プロパティ

デバイスが開いているかどうかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.IsOpen

object は、WaveOut コントロールを指すオブジェクト式です。

解説

IsOpen プロパティの値により、デバイスが開いているかどうかを調べることができます。

データ型

ブール型 (Boolean)

IsPaused プロパティ

再生が一時停止しているかどうかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.IsPaused

object は、WaveOut コントロールを指すオブジェクト式です。

解説

Pause メソッドによって再生を一時停止すると、IsPaused プロパティの値は True になります。Restart メソッドにより再生を再開したり、Stop メソッドClose メソッドにより再生を停止した場合は、IsPaused プロパティの値は False になります。

データ型

ブール型 (Boolean)

参照

OnPausedFlagChange イベント

NumBuffers プロパティ

サウンドの再生に用いるバッファの個数を設定します。値の取得も可能です。

構文

object.NumBuffers [= value]

NumBuffers プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
valueバッファの個数を指定します。

解説

サウンドを再生するためには、再生データを格納するバッファが必要です。このバッファは WaveOut コントロールが自動的に管理します。バッファを確保するためには、BufferSize プロパティに適当なバッファ サイズを設定し、NumBuffers プロパティに 1 以上の値を設定します。これにより、BufferSize × NumBuffers バイトのメモリがバッファとして確保されます。

メモリ不足のためにバッファが確保できない場合は、エラーが発生します。

サウンドの再生中 (IsBusy プロパティTrue の場合) は、BufferSize プロパティに値を設定することはできません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。値を設定したい場合には、Stop メソッドを呼び出して、再生を停止する必要があります。

一般的なサウンド再生アプリケーションにおいて、途切れなく再生を継続するには、NumBuffers プロパティを少なくとも 2 以上にする必要があります。

データ型

整数型 (Integer)

NumBuffersInDevice プロパティ

デバイスの中にあるバッファの個数を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.NumBuffersInDevice

object は、WaveOut コントロールを指すオブジェクト式です。

解説

NumBuffersInDevice プロパティの値は、AddBuffer メソッドを呼び出してバッファを 1 つ追加する度に + 1 されます。また、追加したバッファのデータを再生し終わるか、Stop メソッドClose メソッドの呼び出しによりバッファが 1 つ解放される度に – 1 されます。

データ型

整数型 (Integer)

NumDevices プロパティ

デバイスにインストールされているウェーブ出力デバイスの数を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.NumDevices

object は、WaveOut コントロールを指すオブジェクト式です。

解説

NumDevices プロパティの値を参照することにより、ユーザのコンピュータにインストールされているデバイスの数を調べることができます。デバイスが 1 つもインストールされていないときは 0 を返します。たとえば、プログラムの起動時に NumDevices プロパティの値を調べ、その値が 0 なら、「ウェーブ出力デバイスがインストールされていません。」といった警告メッセージを表示することができます。

データ型

整数型 (Integer)

参照

DeviceID プロパティ

Position プロパティ

現在の再生位置を TimeFormat プロパティで設定される時刻形式で返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。

構文

object.Position

object は、WaveOut コントロールを指すオブジェクト式です。

解説

Position プロパティの値を用いて、再生の経過時間などを表示できます。時刻形式は TimeFormat プロパティの設定に依存します。

Stop メソッドまたは Close メソッドを呼び出すと、Position プロパティの値は 0 にリセットされます。

データ型

長整数型 (Long)

SamplesPerSec プロパティ

サンプリング周波数を設定します。値の取得も可能です。

構文

object.SamplesPerSec [= value]

SamplesPerSec プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
valueサンプリング周波数をヘルツ単位 (Hz) で指定します。1 ~ 384000 までの値を指定できます。次に示す「設定値」も指定できます。

設定値

value の設定値は次のとおりです。

設定値内容
wifSPS8kHz80008 kHz
wifSPS11kHz1102511.025 kHz
wifSPS16kHz1600016 kHz
wifSPS22kHz2205022.05 kHz
wifSPS32kHz3200032 kHz
wifSPS44kHz4410044.1 kHz
wifSPS48kHz4800048 kHz
wifSPS96kHz9600096 kHz
wifSPS192kHz192000192 kHz
wifSPS384kHz384000384 kHz

ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。

解説

SamplesPerSec プロパティは、サウンドの音質に影響します。Windows で主に用いられるサンプリング周波数と、音質の目安を以下の表に示します。

サンプリング周波数音質
8,000 Hz電話の音質
11,025 HzAM ラジオの音質
22,050 HzFM ラジオの音質
44,100 HzCD の音質

再生しようとしているサウンド データのサンプリング周波数に合わせて、SamplesPerSec プロパティの値を設定してください。

SamplesPerSec プロパティに設定したサンプリング周波数を、サウンド ボードが必ずサポートしているとは限りません。デバイスが対応しているかを調べるには、QueryOpen メソッドを呼び出し、デバイスを開けるかどうかを調べます。

デバイスが開いているとき (IsOpen プロパティTrue の場合) は、値を設定できません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。すでにデバイスが開いているときに SamplesPerSec プロパティに値を設定する場合は、Close メソッドを使ってデバイスを閉じる必要があります。

データ型

長整数型 (Long)

TimeFormat プロパティ

Position プロパティの時刻形式を設定します。値の取得も可能です。

構文

object.TimeFormat [= value]

TimeFormat プロパティの構文の指定項目は次のとおりです。

指定項目内容
objectWaveOut コントロールを指すオブジェクト式を指定します。
value時間形式を示す定数または値を指定します。
設定する値については、次の「設定値」を参照してください。

設定値

value の設定値は次のとおりです。

定数内容
wifTimeMilliseconds1(既定値) 再生を開始してからの経過時間 (ミリ秒)。
wifTimeSamples2再生したサンプル数。
wifTimeBytes4再生したデータ バイト数。

ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。

データ型

整数型 (Integer)