亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.pas

?? delphi下的聲音記錄源程序
?? PAS
字號:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, OleCtrls, AMIWAVEPROLib_TLB, reg, Menus;

type
  TFormamSoundRecorder = class(TForm)
    GroupBox1: TGroupBox;
    FrameVolumeControls: TGroupBox;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    GroupBox5: TGroupBox;
    CommandPlay: TButton;
    CommandPause: TButton;
    CommandStop: TButton;
    CommandRecord: TButton;
    CommandChangeConvertFormat: TButton;
    CommandConvert: TButton;
    CommandChangeFormat: TButton;
    ProgressBarLevel: TProgressBar;
    LabelPlayTag: TLabel;
    LabelPlayAttributes: TLabel;
    LabelLength: TLabel;
    LabelPlayVolume: TLabel;
    LabelRecordVolume: TLabel;
    SliderPlayVolume: TTrackBar;
    StatusBar: TStatusBar;
    amWavePro1: TamWavePro;
    LabelConvertTag: TLabel;
    LabelConvertAttributes: TLabel;
    LabelRecordTag: TLabel;
    LabelRecordAttributes: TLabel;
    OptionRecordFile: TRadioButton;
    OptionRecordNull: TRadioButton;
    CheckSilenceDeletion: TCheckBox;
    Label1: TLabel;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    Options1: TMenuItem;
    Open1: TMenuItem;
    Save1: TMenuItem;
    Saveas1: TMenuItem;
    N1: TMenuItem;
    Exit1: TMenuItem;
    AudioDevices1: TMenuItem;
    CommonDialog1: TOpenDialog;
    SliderRecordVolume: TTrackBar;
    SaveDialog: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure AudioDevices1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure Open1Click(Sender: TObject);
    procedure CommandPlayClick(Sender: TObject);
    procedure CommandPauseClick(Sender: TObject);
    procedure CommandStopClick(Sender: TObject);
    procedure CommandRecordClick(Sender: TObject);
    procedure CommandChangeConvertFormatClick(Sender: TObject);
    procedure CommandConvertClick(Sender: TObject);
    procedure CommandChangeFormatClick(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure SliderPlayVolumeChange(Sender: TObject);
    procedure Save1Click(Sender: TObject);
    procedure Saveas1Click(Sender: TObject);
    procedure CheckSilenceDeletionClick(Sender: TObject);
    procedure amWavePro1ConvertDone(Sender: TObject);
    procedure amWavePro1ConvertError(Sender: TObject; ErrNumber: Integer;
      const ErrDescription: WideString);
    procedure amWavePro1DonePlay(Sender: TObject);
    procedure amWavePro1DoneRecord(Sender: TObject);
    procedure amWavePro1Silence(Sender: TObject; Silence: WordBool);
    procedure amWavePro1VUChange(Sender: TObject; PlayVolume,
      RecordLevel: Smallint);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

procedure DisableRecordFeatures();
procedure DisablePlayFeatures();

var
  FormamSoundRecorder: TFormamSoundRecorder;
  WorkFile : String;
  OpenedFiles : String;
  ConvertOutputFile : String;
  RecordOutputFile : String;
  ConvertPlayConvert : String;
  PlayVol:integer;
  RecordVol:integer;
  
const
  AppName='Am Sound Recorder';

implementation

uses AudioDev;

{$R *.dfm}

procedure TFormamSoundRecorder.FormCreate(Sender: TObject);
var
  RecordFormat : String;
  ConvertFormat : String;
begin
  PlayVol:=amWavePro1.PlayVolume;
  RecordVol:=amWavePro1.RecordLevel;
  SliderPlayVolume.Position:=(SliderPlayVolume.Max-SliderPlayVolume.Min) div 2;
  SliderRecordVolume.Position:=(SliderRecordVolume.Max-SliderRecordVolume.Min) div 2;
  amWavePro1.PlayVolume :=PlayVol;
  amWavePro1.RecordLevel:=RecordVol;
  amWavePro1.RecordFormat := amUserSelect;
  RecordFormat := GetSetting(AppName, 'Settings', 'Record Format', '');
  if RecordFormat = '' then
      //set a default record format, value can determined reading RecordUserFormat once a format has been selected
      amWavePro1.RecordUserFormat := '01000100401F0000803E0000020010000000'
  else
      amWavePro1.RecordUserFormat := RecordFormat;
  //DisableRecordFeatures;
  LabelRecordAttributes.Caption := amWavePro1.RecordAttributes;
  LabelRecordTag.Caption := amWavePro1.RecordTag;
  ConvertFormat := GetSetting(AppName, 'Settings', 'Convert Format', '');
  if (ConvertFormat = '') then
      //set a default record format, value can determined reading RecordUserFormat once a format has been selected
      amWavePro1.ConvertFormat := '01000100401F0000803E0000020010000000'
  else
      amWavePro1.ConvertFormat := ConvertFormat;
  LabelConvertAttributes.Caption := amWavePro1.ConvertAttributes;
  LabelConvertTag.Caption := amWavePro1.ConvertTag;
  ConvertOutputFile := 'TempC.wav';
  RecordOutputFile := 'TempR.wav';
  ConvertPlayConvert :='TempCPC.wav';
end;

procedure TFormamSoundRecorder.AudioDevices1Click(Sender: TObject);
begin
 FormAudioDevices.Show;
end;

procedure TFormamSoundRecorder.Exit1Click(Sender: TObject);
begin
 Self.Close;
end;

procedure TFormamSoundRecorder.Open1Click(Sender: TObject);
var FileLength,FileHandle:integer;
begin
  CommonDialog1.Execute;
  //Display name of selected file
  OpenedFiles := CommonDialog1.filename;
  if CommonDialog1.FileName <> '' then
   begin
    WorkFile := CommonDialog1.filename;
    CommandPlay.Enabled := True;
    CommandConvert.Enabled := True;
    amWavePro1.PlayFilename := WorkFile;
    LabelPlayAttributes.Caption := amWavePro1.PlayAttributes;
    LabelPlayTag.Caption := amWavePro1.PlayTag;
    Saveas1.Enabled := True;
    Self.Caption := OpenedFiles + ' - Am Sound Recorder';
    FileHandle:=FileOpen(WorkFile,fmOpenRead);  //Open file.
    FileLength := GetFileSize(FileHandle,nil);   //Get length of file.
    LabelLength.Caption := InttoStr(FileLength) + ' Bytes';
    FileClose(FileHandle);   //Close file.
    DisablePlayFeatures;
   end; 

end;

procedure TFormamSoundRecorder.CommandPlayClick(Sender: TObject);
var WaveOutID:integer;
begin
  if (WorkFile = '') then
   exit;
  WaveOutID := GetSetting(AppName, 'Settings', 'Wave Output ID', -1);
  if WaveOutID = -1 then
   begin
    ShowMessage ('Select ''Play to this device''');
    AudioDevices1Click(Self);
    Exit;
   end;
  amWavePro1.PlayBufferLength := 1;
  amWavePro1.Play(WaveOutID);
  CommandStop.Enabled := True;
  CommandPlay.Enabled := False;
  CommandRecord.Enabled := False;
  CommandPause.Enabled := True;
end;

procedure TFormamSoundRecorder.CommandPauseClick(Sender: TObject);
begin
    if amWavePro1.PlayBusy then
        if amWavePro1.PlayPaused then
         begin
            amWavePro1.PlayPaused := False;
            CommandPause.Caption := 'Pause';
         end
        else
         begin
            amWavePro1.PlayPaused := True;
            CommandPause.Caption := 'Resume';
         end;
    if amWavePro1.RecordBusy then
        if amWavePro1.RecordPaused then
         begin
            amWavePro1.RecordPaused := False;
            CommandPause.Caption := 'Pause';
         end
        else
         begin
            amWavePro1.RecordPaused := True;
            CommandPause.Caption := 'Resume';
         end;
end;

procedure TFormamSoundRecorder.CommandStopClick(Sender: TObject);
begin
  amWavePro1.StopPlay;
  amWavePro1.StopRecord;
end;

procedure TFormamSoundRecorder.CommandRecordClick(Sender: TObject);
var WaveInputID : integer;
begin
    if OptionRecordFile.Checked then
        amWavePro1.RecordFilename := RecordOutputFile
    else
        amWavePro1.RecordFilename := '';
    WaveInputID := GetSetting(AppName, 'Settings', 'Wave Input ID', -1);
    if WaveInputID = -1 then
     begin
        ShowMessage ('Select ''Record to this device''');
        AudioDevices1Click(Self);
        Exit;
     end;
    amWavePro1.Record_(WaveInputID);
    CommandStop.Enabled := True;
    CommandRecord.Enabled := False;
    CommandPlay.Enabled := False;
    CommandPause.Enabled := True;
end;

procedure TFormamSoundRecorder.CommandChangeConvertFormatClick(
  Sender: TObject);
begin
  amWavePro1.ShowConvertFormatDialog(Self.Handle);
  LabelConvertAttributes.Caption := amWavePro1.ConvertAttributes;
  LabelConvertTag.Caption := amWavePro1.ConvertTag;
  //Save in the registry the Convert Format
  SaveSetting(AppName, 'Settings', 'Convert Format', amWavePro1.ConvertFormat);
end;

procedure TFormamSoundRecorder.CommandConvertClick(Sender: TObject);
begin
  amWavePro1.Convert(WorkFile, ConvertOutputFile);
end;

procedure TFormamSoundRecorder.CommandChangeFormatClick(Sender: TObject);
begin
  amWavePro1.ShowRecordFormatDialog(Self.Handle);
  LabelRecordAttributes.Caption := amWavePro1.RecordAttributes;
  LabelRecordTag.Caption := amWavePro1.RecordTag;
  //Save in the registry the Record Format
  SaveSetting (AppName, 'Settings', 'Record Format', amWavePro1.RecordUserFormat);
  DisableRecordFeatures;
end;

procedure TFormamSoundRecorder.TrackBar1Change(Sender: TObject);
begin
  amWavePro1.PlayVolume := SliderPlayVolume.Position - 100;
end;

procedure TFormamSoundRecorder.SliderPlayVolumeChange(Sender: TObject);
begin
  amWavePro1.RecordLevel := SliderRecordVolume.Position - 100;
end;

procedure DisableRecordFeatures();
begin
  //Certain features are only available when working with PCM Mono files, these
  //features are specifically designed (althought not exclusively) for telephony use.
  if ((FormamSoundRecorder.amWavePro1.PlayTag = 'PCM') And (Pos('MONO', UpperCase(FormamSoundRecorder.amWavePro1.PlayAttributes)) > 0)) then
   begin
      FormamSoundRecorder.LabelRecordVolume.Enabled := True;
      FormamSoundRecorder.SliderRecordVolume.Enabled := True;
      FormamSoundRecorder.OptionRecordFile.Enabled := True;
      FormamSoundRecorder.OptionRecordNull.Enabled := True;
      FormamSoundRecorder.CheckSilenceDeletion.Enabled := True;
      FormamSoundRecorder.FrameVolumeControls.Enabled := True;
      FormamSoundRecorder.StatusBar.SimpleText := 'SILENCE';
    end
  else
   begin
      FormamSoundRecorder.LabelRecordVolume.Enabled := False;
      FormamSoundRecorder.SliderRecordVolume.Enabled := False;
      FormamSoundRecorder.OptionRecordFile.Enabled := False;
      FormamSoundRecorder.OptionRecordNull.Enabled := False;
      FormamSoundRecorder.CheckSilenceDeletion.Enabled := False;
      if not FormamSoundRecorder.LabelPlayVolume.Enabled then
       FormamSoundRecorder.FrameVolumeControls.Enabled := False;
      FormamSoundRecorder.StatusBar.SimpleText := '';
    end;
end;

procedure DisablePlayFeatures();
begin
  //Certain features are only available when working with PCM Mono files, these
  //features are specifically designed (althought not exclusively) for telephony use.
  if ((FormamSoundRecorder.amWavePro1.PlayTag = 'PCM') And (Pos('MONO', UpperCase(FormamSoundRecorder.amWavePro1.PlayAttributes)) > 0)) then
     begin
      FormamSoundRecorder.LabelPlayVolume.Enabled := True;
      FormamSoundRecorder.SliderPlayVolume.Enabled := True;
      FormamSoundRecorder.FrameVolumeControls.Enabled := True;
   end
  else
   begin
      FormamSoundRecorder.LabelPlayVolume.Enabled := False;
      FormamSoundRecorder.SliderPlayVolume.Enabled := False;
      if Not FormamSoundRecorder.LabelRecordVolume.Enabled Then
       FormamSoundRecorder.FrameVolumeControls.Enabled := False;
   end;
end;


procedure TFormamSoundRecorder.Save1Click(Sender: TObject);
begin
 CopyFile(Pchar(WorkFile), Pchar(OpenedFiles), False);
end;

procedure TFormamSoundRecorder.Saveas1Click(Sender: TObject);
begin
  //Specify default file name
  SaveDialog.filename := OpenedFiles;
  //Display the Open dialog box
  SaveDialog.Execute;
  OpenedFiles := SaveDialog.filename;
  CopyFile(Pchar(WorkFile), Pchar(OpenedFiles), False);
  WorkFile := OpenedFiles;
  Self.Caption := OpenedFiles + ' - Am Sound Recorder';
end;

procedure TFormamSoundRecorder.CheckSilenceDeletionClick(Sender: TObject);
begin
  amWavePro1.SilenceDeletion := CheckSilenceDeletion.Checked;
end;

procedure TFormamSoundRecorder.amWavePro1ConvertDone(Sender: TObject);
var FileLength,FileHandle:integer;
begin
  //test to see if ConvertOutputFile is good, test for error before we copy
  amWavePro1.PlayFilename := ConvertOutputFile;
  CopyFile(Pchar(ConvertOutputFile), Pchar(ConvertPlayConvert),False);
  WorkFile := ConvertPlayConvert;
  amWavePro1.PlayFilename := WorkFile;
  Save1.Enabled := True;
  LabelPlayAttributes.Caption := amWavePro1.PlayAttributes;
  LabelPlayTag.Caption := amWavePro1.PlayTag;
  FileHandle:=FileOpen(WorkFile,fmOpenRead);  //Open file.
  FileLength := GetFileSize(FileHandle,nil);   //Get length of file.
  LabelLength.Caption := InttoStr(FileLength) + ' Bytes';
  FileClose(FileHandle);   //Close file.
  ShowMessage ('Conversion Done' + #13#10 + 'You can now play the converted file');
end;

procedure TFormamSoundRecorder.amWavePro1ConvertError(Sender: TObject;
  ErrNumber: Integer; const ErrDescription: WideString);
begin
  ShowMessage ('Conversion Error No: ' + IntToStr(Errnumber));
end;

procedure TFormamSoundRecorder.amWavePro1DonePlay(Sender: TObject);
begin
  CommandStop.Enabled := False;
  CommandPlay.Enabled := True;
  CommandRecord.Enabled := True;
  CommandPause.Enabled := False;
  CommandPause.Caption := 'Pause';
end;

procedure TFormamSoundRecorder.amWavePro1DoneRecord(Sender: TObject);
var FileLength,FileHandle:integer;
begin
  CommandStop.Enabled := False;
  CommandRecord.Enabled := True;
  CommandPlay.Enabled := True;
  CommandPause.Enabled := False;
  CommandPause.Caption := 'Pause';
  CommandPlay.Enabled := True;
  if OptionRecordFile.Checked then
    begin
      WorkFile := RecordOutputFile;
      amWavePro1.PlayFilename := WorkFile;
      DisablePlayFeatures;
      LabelPlayAttributes.Caption := amWavePro1.PlayAttributes;
      LabelPlayTag.Caption := amWavePro1.PlayTag;
      FileHandle:=FileOpen(WorkFile,fmOpenRead);  //Open file.
      FileLength := GetFileSize(FileHandle,nil);   //Get length of file.
      LabelLength.Caption := InttoStr(FileLength) + ' Bytes';
      FileClose(FileHandle);   //Close file.
      CommandConvert.Enabled := True;
      Save1.Enabled := True;
      Saveas1.Enabled := True;
    end;
end;

procedure TFormamSoundRecorder.amWavePro1Silence(Sender: TObject;
  Silence: WordBool);
begin
  if Silence then
      StatusBar.SimpleText := 'SILENCE'
  else
      StatusBar.SimpleText := 'NOISE';
end;

procedure TFormamSoundRecorder.amWavePro1VUChange(Sender: TObject;
  PlayVolume, RecordLevel: Smallint);
begin
  ProgressBarLevel.Position := PlayVolume + RecordLevel;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人高清电影在线| 国产aⅴ精品一区二区三区色成熟| 91亚洲精品乱码久久久久久蜜桃| 日本一区二区三区在线观看| 成人性生交大片免费看在线播放| 国产日韩精品久久久| 成人h动漫精品一区二区| 一区二区中文字幕在线| 欧洲激情一区二区| 亚洲成av人片在线观看无码| 91精品久久久久久久久99蜜臂| 免费日本视频一区| 久久久国产一区二区三区四区小说 | 国产天堂亚洲国产碰碰| 高清免费成人av| 亚洲男人电影天堂| 欧美日韩一区二区不卡| 精品一区二区三区免费毛片爱| 国产日韩欧美激情| 欧美性感一区二区三区| 久久福利视频一区二区| 中文无字幕一区二区三区| 91久久一区二区| 久久99国产精品久久| 中文字幕一区二| 中文在线一区二区| 91国产免费观看| 专区另类欧美日韩| 久久久久99精品一区| 久久综合狠狠综合| 91视频在线看| 免费欧美在线视频| 《视频一区视频二区| 欧美顶级少妇做爰| 不卡视频免费播放| 免费成人你懂的| 亚洲欧洲日产国码二区| 日韩一区二区三区四区五区六区| 成人免费看视频| 美腿丝袜一区二区三区| 中文字幕一区三区| 欧美mv日韩mv国产| 欧美亚洲动漫另类| 国产福利一区二区| 美女网站在线免费欧美精品| 中文字幕视频一区| 精品处破学生在线二十三| 在线观看日韩一区| 成人国产电影网| 美女视频第一区二区三区免费观看网站| 国产精品久久久一区麻豆最新章节| 在线综合视频播放| 欧美体内she精视频| www.亚洲人| 韩国v欧美v亚洲v日本v| 视频一区中文字幕| 亚洲综合激情网| 亚洲丝袜另类动漫二区| 国产亚洲精品bt天堂精选| 日韩精品一区二区三区视频 | 一区二区三区小说| 欧美激情在线一区二区三区| 日韩欧美专区在线| 欧美人与性动xxxx| 欧美私模裸体表演在线观看| av一二三不卡影片| 成人黄色电影在线| 国产传媒欧美日韩成人| 激情六月婷婷久久| 久久av老司机精品网站导航| 日本午夜精品一区二区三区电影| 亚洲一区二区三区国产| 亚洲激情六月丁香| 亚洲精品中文字幕在线观看| 国产精品不卡一区二区三区| 欧美经典一区二区三区| 欧美激情综合网| 国产精品你懂的| 专区另类欧美日韩| 亚洲综合区在线| 亚洲福利视频一区二区| 天天色图综合网| 日韩成人一级大片| 狠狠色丁香九九婷婷综合五月| 久久99精品一区二区三区三区| 久久国产精品99久久久久久老狼| 日韩va欧美va亚洲va久久| 日本欧美加勒比视频| 久久国产精品露脸对白| 国产成人精品三级麻豆| 不卡的av网站| 欧美在线免费观看亚洲| 777a∨成人精品桃花网| 日韩美女视频在线| 日本一区二区三区四区在线视频 | 久久久久久久久岛国免费| 国产亚洲精品bt天堂精选| 国产精品第13页| 一区av在线播放| 麻豆91在线观看| 国产成人综合在线播放| 91一区一区三区| 欧美猛男gaygay网站| 久久婷婷成人综合色| 国产精品久久福利| 午夜精品福利一区二区三区蜜桃| 麻豆国产精品视频| 91在线视频免费91| 欧美一区二区久久久| 国产欧美视频一区二区三区| 亚洲精品视频自拍| 久久精品国产77777蜜臀| 国产精品一二一区| 97久久久精品综合88久久| 欧美日韩成人高清| 国产亚洲女人久久久久毛片| 亚洲国产精品一区二区久久恐怖片| 男男成人高潮片免费网站| 成人网页在线观看| 欧美一级理论性理论a| 国产精品久久综合| 免费成人性网站| 色婷婷综合久色| 欧美大白屁股肥臀xxxxxx| 亚洲欧洲中文日韩久久av乱码| 久久黄色级2电影| 91女神在线视频| 久久综合一区二区| 亚洲综合在线第一页| 国产激情精品久久久第一区二区 | 美女一区二区三区| 色综合中文综合网| 日韩av成人高清| 丁香五精品蜜臀久久久久99网站 | 国产福利一区二区| 欧美日韩视频第一区| 久久久亚洲精品一区二区三区| 亚洲一区二区三区激情| 成人亚洲一区二区一| 欧美一区二区在线不卡| 一区二区三区四区在线播放| 国产另类ts人妖一区二区| 在线播放中文字幕一区| 亚洲综合成人在线| 菠萝蜜视频在线观看一区| 欧美精品一区二区三区蜜臀| 午夜国产精品一区| 欧美性欧美巨大黑白大战| 国产精品国产三级国产有无不卡 | 欧美综合在线视频| 中文字幕在线观看不卡| 国产精品主播直播| 精品欧美一区二区三区精品久久 | 麻豆精品一区二区av白丝在线| 精品视频123区在线观看| 国产精品精品国产色婷婷| 国产白丝网站精品污在线入口| 欧美v日韩v国产v| 日本欧美一区二区| 日韩亚洲欧美一区二区三区| 亚洲成av人片在线观看| 欧美日韩一级黄| 亚洲影院久久精品| 欧洲一区在线电影| 亚洲一区二区不卡免费| 91久久精品国产91性色tv| 亚洲人成在线播放网站岛国| 97精品电影院| 最新热久久免费视频| 色素色在线综合| 亚洲精品免费电影| 在线观看不卡一区| 婷婷久久综合九色综合伊人色| 欧美三区免费完整视频在线观看| 亚洲一线二线三线视频| 欧洲精品一区二区三区在线观看| 亚洲一区二区免费视频| 欧美日韩aaaaa| 青青草91视频| 久久婷婷色综合| 播五月开心婷婷综合| 一区二区三区91| 欧美精品久久99久久在免费线| 日本亚洲电影天堂| 欧美xxxxx牲另类人与| 国产精品996| 欧美性高清videossexo| 色妹子一区二区| 麻豆视频一区二区| 欧美日韩综合在线免费观看| 国产精品一区二区x88av| 亚洲成人资源网| 亚洲婷婷在线视频| 国产精品欧美久久久久无广告| 在线影院国内精品| 欧美中文字幕亚洲一区二区va在线| 国产精品12区| 不卡av电影在线播放| 成人免费黄色大片| 成人国产精品免费网站|