- AvgBytesPerSec プロパティ
- BitsPerSample プロパティ
- BlockAlign プロパティ
- BufferSize プロパティ
- Channels プロパティ
- DeviceID プロパティ
- DeviceName プロパティ
- ErrorNum プロパティ
- ErrorString プロパティ
- hWaveIn プロパティ
- IsBufferBusy プロパティ
- IsBusy プロパティ
- IsOpen プロパティ
- IsPaused プロパティ
- NumBuffers プロパティ
- NumBuffersInDevice プロパティ
- NumDevices プロパティ
- Position プロパティ
- SamplesPerSec プロパティ
- TimeFormat プロパティ
AvgBytesPerSec プロパティ
平均データ レート (バイト/秒) を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.AvgBytesPerSec
object は、WaveIn コントロールを指すオブジェクト式です。
解説
AvgBytesPerSec プロパティは、サウンド データが 1 秒当たり何バイトであるかを示す値を返します。この値は、BitsPerSample プロパティ、Channels プロパティ、SamplesPerSec プロパティの値に依存します。オーディオ データの長さ (時間) が分かれば、この値を用いて、オーディオ データのサイズ (バイト数) を求めることができます。例えば、録音したデータをファイルに直接記録するような場合、データを記録するドライブの空き容量を取得することにより、録音可能な時間がどのくらいであるかを調べることができます。
データ型
長整数型 (Long)
BitsPerSample プロパティ
サウンドを何ビットでサンプリングするかを設定します。値の取得も可能です。
構文
object.BitsPerSample [= value]
BitsPerSample プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
value | サンプリング ビット数を示す定数または値を指定します。 設定する値については、次の「設定値」を参照してください。 |
設定値
value の設定値は次のとおりです。
定数 | 値 | 内容 |
---|---|---|
wifBPS8Bit | 8 | (既定値) サウンドを 8 ビットでサンプリングします。サウンドの質はあまり良くありませんが、少ないデータ量ですみます。音声の録音などに向いています。 |
wifBPS16Bit | 16 | サウンドを 16 ビットでサンプリングします。サウンドの質は良くなりますが、8 ビットの場合の 2 倍のデータ量になります。音楽のように高い音質が要求される用途に向いています。 |
ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。
解説
BitsPerSample プロパティは、サウンドの質およびデータ量に影響します。高い音質を必要とする場合は 16 ビット、データ量を少なくしたい場合は 8 ビットに設定してください。
デバイスが開いているとき (IsOpen プロパティが True の場合) は、値を設定できません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。すでにデバイスが開いているときに BitsPerSample プロパティに値を設定する場合は、Close メソッドを使ってデバイスを閉じる必要があります。
データ型
整数型 (Integer)
参照
Channels プロパティ、SamplesPerSec プロパティ
BlockAlign プロパティ
サウンド データの 1 サンプルが何バイトであるかを返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.BlockAlign
object は、WaveIn コントロールを指すオブジェクト式です。
解説
BlockAlign プロパティは、データが何バイト単位で処理されるかを示します。例えば、16 ビット、ステレオのサウンド データは 4 バイト単位でデータが処理されます (2 バイト × 2 チャネル)。BlockAlign プロパティの値は、BitsPerSample プロパティ、Channels プロパティの値に依存します。
通常、サウンドの録音に使用するバッファのサイズ (BufferSize プロパティ) は、BlockAlign プロパティの整数倍になるように設定します。
データ型
整数型 (Integer)
BufferSize プロパティ
サウンドの録音に用いるバッファのサイズを設定します。値の取得も可能です。
構文
object.BufferSize [= value]
BufferSize プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
value | バッファのサイズを指定します。 |
解説
BufferSize プロパティは、バッファ 1 個あたりのバッファ サイズを設定します。
サウンドを録音するためには、録音データを格納するバッファが必要です。このバッファは WaveIn コントロールが自動的に管理します。バッファを確保するためには、BufferSize プロパティに適当なバッファ サイズを設定し、NumBuffers プロパティに 1 以上の値を設定します。これにより、BufferSize × NumBuffers バイトのメモリがバッファとして確保されます。
通常、サウンドの録音に使用するバッファのサイズ (BufferSize プロパティ) は、BlockAlign プロパティの整数倍になるように設定します。
メモリ不足のためにバッファが確保できない場合は、エラーが発生します。
サウンドの録音中 (IsBusy プロパティが True の場合) は、BufferSize プロパティに値を設定することはできません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。値を設定したい場合には、Stop メソッドを呼び出して、録音を停止する必要があります。
データ型
長整数型 (Long)
Channels プロパティ
オーディオ チャネル数 (モノラル/ステレオ) を設定します。値の取得も可能です。
構文
object.Channels [= value]
Channels プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
value | オーディオ チャネル数を示す定数または値を指定します。 設定する値については、次の「設定値」を参照してください。 |
設定値
value の設定値は次のとおりです。
定数 | 値 | 内容 |
---|---|---|
wifMono | 1 | (既定値) サウンドをモノラル (1 チャネル) でサンプリングします。 |
wifStereo | 2 | サウンドをステレオ (2 チャネル) でサンプリングします。データ量はモノラルの 2 倍になります。 |
ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。
デバイスが開いているとき (IsOpen プロパティが True の場合) は、値を設定できません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。すでにデバイスが開いているときに Channels プロパティに値を設定する場合は、Close メソッドを使ってデバイスを閉じる必要があります。
データ型
整数型 (Integer)
参照
BitsPerSample プロパティ、SamplesPerSec プロパティ
DeviceID プロパティ
サウンドの録音に使用するデバイスの ID を指定します。値の取得も可能です。
構文
object.DeviceID [= value]
DeviceID プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
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 は、WaveIn コントロールを指すオブジェクト式です。
解説
DeviceName プロパティの値を利用して、現在使用しているデバイスの名称をユーザに示すことができます。また、DeviceID プロパティおよび NumDevices プロパティと組み合わせて、システムにインストールされているデバイスの一覧を作成することができます。
データ型
文字列型 (String)
ErrorNum プロパティ
Windows マルチメディア システム内で発生したエラーに対応するエラー番号を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.ErrorNum
object は、WaveIn コントロールを指すオブジェクト式です。
戻り値
以下のいずれかの値を返します。
定数 | 値 | 内容 |
---|---|---|
wifMMSysErrNoError | 0 | コマンドが実行されました。 |
wifMMSysErrError | 1 | 未定義の外部エラーが発生しました。 |
wifMMSysErrBadDeviceID | 2 | システムの制限範囲を越えるデバイス ID が使われました。 |
wifMMSysErrNotEnabled | 3 | ドライバは使用可能にされませんでした。 |
wifMMSysErrAllocated | 4 | このデバイスはすでに使用中です。 解放されるまで待ってから、やり直してください。 |
wifMMSysErrInvalidHandle | 5 | デバイス ハンドルが無効です。 |
wifMMSysErrNoDriver | 6 | システムにドライバがインストールされていません。 |
wifMMSysErrNoMem | 7 | メモリ不足のため実行できません。 アプリケーションをいくつか終了して、空きメモリを増やしてください。 |
wifMMSysErrNotSupported | 8 | この関数はサポートされていません。 Capabilities 関数を使って、ドライバがサポートしているものを調べてください。 |
wifMMSysErrBadErrNum | 9 | システムで定義されていないエラー番号が指定されました。 |
wifMMSysErrInvalFlag | 10 | 無効なフラグがシステム関数に渡されました。 |
wifMMSysErrInvalParam | 11 | 無効なパラメータがシステム関数に渡されました。 |
wifMMSysErrHandleBusy | 12 | ハンドルはほかのスレッド (callback など) で使用されています。 |
wifMMSysErrInvalidAlias | 13 | 指定したエイリアスは WIN.INI ファイルにはありません。 |
wifMMSysErrBadDB | 14 | レジストリ データベースが壊れています。 |
wifMMSysErrKeyNotFound | 15 | 指定したレジストリ キーが見つかりません。 |
wifMMSysErrReadError | 16 | レジストリが開けなかったか、または読み取れませんでした。 |
wifMMSysErrWriteError | 17 | レジストリに書き込めませんでした。 |
wifMMSysErrDeleteError | 18 | 指定されたレジストリ キーを削除できませんでした。 |
wifMMSysErrValNotFound | 19 | 指定されたレジストリ キーの値が見つかりませんでした。 |
wifMMSysErrNoDriverCB | 20 | ドライバは有効な OPEN コールバックを生成しませんでした。 |
ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。
解説
メソッドの呼び出しや、プロパティのアクセスにより、実行時エラー「マルチメディア システムでエラーが発生しました。」が発生した場合に、ErrorNum プロパティを参照することにより、エラーの詳細を知ることができます。
データ型
長整数型 (Long)
参照
ErrorString プロパティ
Windows マルチメディア システム内で発生したエラーに対応するエラー メッセージを返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.ErrorString
object は、WaveIn コントロールを指すオブジェクト式です。
解説
メソッドの呼び出しや、プロパティのアクセスにより、実行時エラー「マルチメディア システムでエラーが発生しました。」が発生した場合に、ErrorString プロパティを参照することにより、エラーの詳細を知ることができます。
データ型
文字列型 (String)
参照
hWaveIn プロパティ
現在開いているウェーブ入力デバイスのハンドルを返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.hWaveIn
object は、WaveIn コントロールを指すオブジェクト式です。
解説
デバイス ハンドルは、現在開いているウェーブ入力デバイスを識別するための番号です。デバイスが開いていないときは、hWaveIn プロパティは 0 を返します。
Windows マルチメディア API のうち、名前が waveIn で始まる関数を呼び出すとき、たいていの場合、ウェーブ入力デバイスのハンドルを必要とします。waveIn 系関数を直接呼び出す場合に、API 関数の hWaveIn パラメータに hWaveIn プロパティの値を指定します。
データ型
OLE_HANDLE 型
IsBufferBusy プロパティ
録音用のバッファが使用中であるかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.IsBufferBusy (bufferindex)
IsBufferBusy プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
bufferindex | バッファのインデックスを指定します。 |
解説
bufferindex で指定したバッファがまだ処理されずに、または処理中でデバイスの内部にある場合は、True を返します。IsBufferBusy プロパティが True のバッファに対して、AddBuffer メソッドを呼び出すことはできません。
データ型
ブール型 (Boolean)
IsBusy プロパティ
録音中であるかどうかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.IsBusy
object は、WaveIn コントロールを指すオブジェクト式です。
解説
Pause メソッドの呼び出しによって録音が一時停止している場合でも、バッファがデバイスの中に 1 つ以上あれば、IsBusy プロパティは True を返します。
データ型
ブール型 (Boolean)
参照
IsOpen プロパティ
デバイスが開いているかどうかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.IsOpen
object は、WaveIn コントロールを指すオブジェクト式です。
解説
IsOpen プロパティの値により、デバイスが開いているかどうかを調べることができます。
データ型
ブール型 (Boolean)
IsPaused プロパティ
録音が一時停止しているかどうかを示すブール値を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.IsPaused
object は、WaveIn コントロールを指すオブジェクト式です。
解説
Pause メソッドによって録音を一時停止すると、IsPaused プロパティの値は True になります。Start メソッドにより録音を再開したり、Stop メソッドや Close メソッドにより録音を停止した場合は、IsPaused プロパティの値は False になります。
データ型
ブール型 (Boolean)
参照
NumBuffers プロパティ
サウンドの録音に用いるバッファの個数を設定します。値の取得も可能です。
構文
object.NumBuffers [= value]
NumBuffers プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
value | バッファの個数を指定します。 |
解説
サウンドを録音するためには、録音データを格納するバッファが必要です。このバッファは WaveIn コントロールが自動的に管理します。バッファを確保するためには、BufferSize プロパティに適当なバッファ サイズを設定し、NumBuffers プロパティに 1 以上の値を設定します。これにより、BufferSize × NumBuffers バイトのメモリがバッファとして確保されます。
メモリ不足のためにバッファが確保できない場合は、エラーが発生します。
サウンドの録音中 (IsBusy プロパティが True の場合) は、BufferSize プロパティに値を設定することはできません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。値を設定したい場合には、Stop メソッドを呼び出して、録音を停止する必要があります。
一般的なサウンド録音アプリケーションにおいて、途切れなく録音を継続するには、NumBuffers プロパティを少なくとも 2 以上にする必要があります。
データ型
整数型 (Integer)
NumBuffersInDevice プロパティ
デバイスの中にあるバッファの個数を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.NumBuffersInDevice
object は、WaveIn コントロールを指すオブジェクト式です。
解説
NumBuffersInDevice プロパティの値は、AddBuffer メソッドを呼び出してバッファを 1 つ追加する度に + 1 されます。また、追加したバッファが録音されたデータでいっぱいになるか、Stop メソッドや Close メソッドの呼び出しによりバッファが 1 つ解放される度に – 1 されます。
データ型
整数型 (Integer)
NumDevices プロパティ
デバイスにインストールされているウェーブ入力デバイスの数を返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.NumDevices
object は、WaveIn コントロールを指すオブジェクト式です。
解説
NumDevices プロパティの値を参照することにより、ユーザのコンピュータにインストールされているデバイスの数を調べることができます。デバイスが 1 つもインストールされていないときは 0 を返します。たとえば、プログラムの起動時に NumDevices プロパティの値を調べ、その値が 0 なら、「ウェーブ入力デバイスがインストールされていません。」といった警告メッセージを表示することができます。
データ型
整数型 (Integer)
参照
Position プロパティ
現在の録音位置を TimeFormat プロパティで設定される時刻形式で返します。デザイン時は利用できません。実行時は、値の取得のみ可能です。
構文
object.Position
object は、WaveIn コントロールを指すオブジェクト式です。
解説
Position プロパティの値を用いて、録音の経過時間などを表示できます。時刻形式は TimeFormat プロパティの設定に依存します。
Stop メソッドまたは Close メソッドを呼び出すと、Position プロパティの値は 0 にリセットされます。
データ型
長整数型 (Long)
SamplesPerSec プロパティ
サンプリング周波数を設定します。値の取得も可能です。
構文
object.SamplesPerSec [= value]
SamplesPerSec プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
value | サンプリング周波数をヘルツ単位 (Hz) で指定します。1 ~ 384000 までの値を指定できます。次に示す「設定値」も指定できます。 |
設定値
value の設定値は次のとおりです。
設定値 | 値 | 内容 |
---|---|---|
wifSPS8kHz | 8000 | 8 kHz |
wifSPS11kHz | 11025 | 11.025 kHz |
wifSPS16kHz | 16000 | 16 kHz |
wifSPS22kHz | 22050 | 22.05 kHz |
wifSPS32kHz | 32000 | 32 kHz |
wifSPS44kHz | 44100 | 44.1 kHz |
wifSPS48kHz | 48000 | 48 kHz |
wifSPS96kHz | 96000 | 96 kHz |
wifSPS192kHz | 192000 | 192 kHz |
wifSPS384kHz | 384000 | 384 kHz |
ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。
解説
SamplesPerSec プロパティは、サウンドの音質に影響します。Windows で主に用いられるサンプリング周波数と、音質の目安を以下の表に示します。
サンプリング周波数 | 音質 |
---|---|
8,000 Hz | 電話の音質 |
11,025 Hz | AM ラジオの音質 |
22,050 Hz | FM ラジオの音質 |
44,100 Hz | CD の音質 |
サンプリング周波数が高いほど音質は良くなりますが、その分、データの量は増えます。
SamplesPerSec プロパティに設定したサンプリング周波数を、サウンド ボードが必ずサポートしているとは限りません。デバイスが対応しているかを調べるには、QueryOpen メソッドを呼び出し、デバイスを開けるかどうかを調べます。
デバイスが開いているとき (IsOpen プロパティが True の場合) は、値を設定できません (値の取得のみ可能です)。この場合、値を設定しようとすると、エラーが発生します。すでにデバイスが開いているときに SamplesPerSec プロパティに値を設定する場合は、Close メソッドを使ってデバイスを閉じる必要があります。
データ型
長整数型 (Long)
TimeFormat プロパティ
Position プロパティの時刻形式を設定します。値の取得も可能です。
構文
object.TimeFormat [= value]
TimeFormat プロパティの構文の指定項目は次のとおりです。
指定項目 | 内容 |
---|---|
object | WaveIn コントロールを指すオブジェクト式を指定します。 |
value | 時間形式を示す定数または値を指定します。 設定する値については、次の「設定値」を参照してください。 |
設定値
value の設定値は次のとおりです。
定数 | 値 | 内容 |
---|---|---|
wifTimeMilliseconds | 1 | (既定値) 録音を開始してからの経過時間 (ミリ秒)。 |
wifTimeSamples | 2 | 録音したサンプル数。 |
wifTimeBytes | 4 | 録音したデータ バイト数。 |
ここで示した定数は、オブジェクト ブラウザの WaveInterfaceLib オブジェクト ライブラリにも表示されます。
データ型
整数型 (Integer)