⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 控件,支持MP3,WAV相互转换,支持编程语言:DELPHI
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, CsAudio_TLB, StdCtrls, ComCtrls, ExtCtrls, Buttons;

type
  TAudioCvtForm = class(TForm)
    ProgressBar1: TProgressBar;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    EditInputMp3: TEdit;
    EditOutWav: TEdit;
    ButtonCvtWav: TButton;
    ButtonStop1: TButton;
    ButtonOpenMP3: TButton;
    ButtonSaveWav: TButton;
    RG_SampleRateWav: TRadioGroup;
    RG_Channel: TRadioGroup;
    OD_MP3: TOpenDialog;
    SD_Wav: TSaveDialog;
    Label3: TLabel;
    Label4: TLabel;
    EditInputWav: TEdit;
    EditOutMp3: TEdit;
    ButtonOpenWAV: TButton;
    ButtonSaveMP3: TButton;
    ButtonCvtMp3: TButton;
    ButtonStop2: TButton;
    RG_SampleRateMP3: TRadioGroup;
    RG_ModeMp3: TRadioGroup;
    OD_WAV: TOpenDialog;
    SD_MP3: TSaveDialog;
    CsAConvert1: TCsAConvert;
    SpeedButton1: TSpeedButton;
    procedure ButtonOpenMP3Click(Sender: TObject);
    procedure ButtonSaveWavClick(Sender: TObject);
    procedure ButtonCvtWavClick(Sender: TObject);
    procedure CsAConvert1Progress(Sender: TObject;
      PercentComplete: Integer);
    procedure CsAConvert1EndProcess(Sender: TObject);
    procedure ButtonStop1Click(Sender: TObject);
    procedure ButtonOpenWAVClick(Sender: TObject);
    procedure ButtonSaveMP3Click(Sender: TObject);
    procedure ButtonCvtMp3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  AudioCvtForm: TAudioCvtForm;

implementation

{$R *.dfm}

procedure TAudioCvtForm.ButtonOpenMP3Click(Sender: TObject);
begin
 if OD_MP3.Execute then
   begin
     EditInputMp3.Text:= OD_MP3.FileName;
   end;
end;

procedure TAudioCvtForm.ButtonSaveWavClick(Sender: TObject);
begin
 if SD_Wav.Execute then
   begin
     EditOutWav.Text:= SD_Wav.FileName;
   end;
end;

procedure TAudioCvtForm.ButtonCvtWavClick(Sender: TObject);
begin
  CsAConvert1.Mode
  if (Trim(EditInputMp3.Text)='') or (Trim(EditOutWav.Text)='') then Exit;
  
  CsAConvert1.InputFile:=EditInputMp3.Text;

  CsAConvert1.OutputFile:=EditOutWav.Text;

  CsAConvert1.SampleRate:=StrToInt(RG_SampleRateWav.Items[RG_SampleRateWav.ItemIndex]);

  if RG_Channel.ItemIndex=0 then CsAConvert1.Channels:=2 else CsAConvert1.Channels:=1;

  CsAConvert1.BeginConvertToWave;

end;

procedure TAudioCvtForm.CsAConvert1Progress(Sender: TObject;
  PercentComplete: Integer);
begin
 ProgressBar1.Position:=PercentComplete;
end;

procedure TAudioCvtForm.CsAConvert1EndProcess(Sender: TObject);
begin
  MessageBox(0,Pchar('音频文件转换完成!'),Pchar(Caption),MB_ICONINFORMATION+MB_OK);
end;

procedure TAudioCvtForm.ButtonStop1Click(Sender: TObject);
begin
 CsAConvert1.CancelConvert;
end;

procedure TAudioCvtForm.ButtonOpenWAVClick(Sender: TObject);
begin
 if OD_WAV.Execute then
   begin
     EditInputWav.Text:= OD_WAV.FileName;
   end;
end;

procedure TAudioCvtForm.ButtonSaveMP3Click(Sender: TObject);
begin
 if SD_MP3.Execute then
   begin
     EditOutMp3.Text:= SD_MP3.FileName;
   end;
end;

procedure TAudioCvtForm.ButtonCvtMp3Click(Sender: TObject);
begin
  if (Trim(EditInputWav.Text)='') or (Trim(EditOutMp3.Text)='') then Exit;
  
  CsAConvert1.InputFile:=EditInputWav.Text;

  CsAConvert1.OutputFile:=EditOutMp3.Text;

  CsAConvert1.SampleRate:=StrToInt(RG_SampleRateMP3.Items[RG_SampleRateMP3.ItemIndex]);

  CsAConvert1.Mode:=RG_ModeMp3.ItemIndex;

  CsAConvert1.BeginConvertToMp3;
  
end;

procedure TAudioCvtForm.SpeedButton1Click(Sender: TObject);
begin
  CsAConvert1.AboutBox;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -