お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"音質の設定ダイヤログの表示"






Windowsに標準である音質の設定ダイヤログの表示サンプルです。

msacmをusesに追加

msacm.pas は http://www.programmersheaven.com/zone2/cat303/ より取得

FormにButtonを置いてButtonのクリックイベントに記述


procedure TForm1.Button1Click(Sender: TObject);
var
  dwSize: DWORD;
  lpWfx: PWaveFormatEx;
  cfmt: TACMFormatChoose;
  fmtName: array [0..255] of Char;
begin

  { 音質の設定を行う }

  { 最大のWAVEFORMATEXのサイズ取得 }
  acmMetrics(0, ACM_METRIC_MAX_SIZE_FORMAT, dwSize);  

  lpWfx := PWaveFormatEx(AllocMem(dwSize));
  if (lpWfx <> nil) then
  begin
    { デフォルト選択させる場合 }
    lpWfx^.wFormatTag := WAVE_FORMAT_PCM;
    lpWfx^.nChannels := 1;
    lpWfx^.nSamplesPerSec := 22050;
    lpWfx^.nAvgBytesPerSec := 22050;
    lpWfx^.nBlockAlign := 1;
    lpWfx^.wBitsPerSample := 8;

    { Producing a Dialog Box for Selecting a Format for Recording }
    ZeroMemory(@cfmt, sizeof(TACMFormatChoose));
    cfmt.cbStruct := sizeof (TACMFormatChoose);
    cfmt.fdwStyle := ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT;
    cfmt.fdwEnum := ACM_FORMATENUMF_HARDWARE 
                    or ACM_FORMATENUMF_INPUT;
    { 録音フォーマット }
    cfmt.hwndOwner := Handle;
    cfmt.pwfx := lpWfx;
    cfmt.cbwfx := dwSize;
    cfmt.pszName := fmtName;  { 定義名 }
    cfmt.cchName := sizeof(fmtName);
    { ダイアログの表示 }
    if (acmFormatChoose(cfmt) = MMSYSERR_NOERROR) then begin      
        showMessage(StrPas(cfmt.szFormatTag)
                     + ':' + StrPas(cfmt.szFormat));
    end;
    FreeMem(lpWfx);
  end;
end;

 



Original document by いさやん        氏 ID:(YIB02642)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum