16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:ボリューム(音量)を変える【訂正】"
この発言は #00507 河邦 正 さんのボリューム(音量)を変える に対するコメントです
#507 の自分の発言に‘ボケ’があったので訂正します(^^;。
【訂正する個所】
#507 で、
> ダブルクリックで出る音量コントロールの WAVE ボリュームだけなら、
>
> uses MMSystem;
> auxSetVolume(uDeviceID: UINT; dwVolume: DWORD);
と書いてしまいましたが uDeviceID の設定で‘出力ミキサー’の各ラインの
ボリュームを設定できるようです。
uDeviceID の有効範囲は 0 〜 auxGetNumDevs - 1 でそれぞれの出力ライ
ンに1対1で対応しているようです。
uDeviceID の件は auxGetVolume についても同様です。
【未解決な部分】
ちょっと困るのは uDeviceID が示すデバイスの種類の特定方法です。
uses MMSystem;
var
Data: TAuxCaps;
auxGetDevCaps(i, @Data, sizeof(Data));
として、
case(Data.wTechnology)of
AUXCAPS_CDAUDIO: // コンパクトディスク
AUXCAPS_AUXIN: // AUX入力
end;
で識別できるのですが、Wave、Mic、Midi、マスター、に対応する
AUXCAPS.wTechnology の明確な定義が見当たりません。
手元の環境(SB16互換 on Intel Advanced E/V)で
AUXCAPS.wTechnology
AUXCAPS.szPname
の対応を調べたら、
1: CDAudio // MMSystem 内で定義済み(AUXCAPS_CDAUDIO)
2: Aux入力 // MMSystem 内で定義済み(AUXCAPS_AUXIN)
4: マイク
8: マスター
16: PCスピーカー
32: Wave
64: MIDI
となっていますが、どうやら、最初の2つ以外は環境によって一定ではない
ようです(MES/9/4229 の水無月紗羅さんからいただいたコメントより)。
追加情報、コメント、突っ込みなど々をお願いします。
1999/05/13、河邦 正(GCC02240@nifty.ne.jp)
Original document by 河邦 正 氏 ID:(GCC02240)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|